ios的延迟执行方法

发布时间:2016-12-10 22:34:04 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"ios的延迟执行方法",主要涉及到ios的延迟执行方法方面的内容,对于ios的延迟执行方法感兴趣的同学可以参考一下。

1.最直接的方法performSelector:withObject:afterDelay: 这种方法的缺点:每次要为延时写一个方法   2.使用类别,用BOLCK执行 [代码]c#/cpp/oc代码: 01 @implementation NSObject (PerformBlockAfterDelay) 02   03 - (void)performBlock:(void (^)(void))block 04           afterDelay:(NSTimeInterval)delay 05 { 06     block = [[block copy] autorelease]; 07     [self performSelector:@selector(fireBlockAfterDelay:) 08                withObject:block 09                afterDelay:delay]; 10 } 11   12 - (void)fireBlockAfterDelay:(void (^)(void))block { 13     block(); 14 } 15   16 @end   3.使用GCD [代码]c#/cpp/oc代码: 1 void RunBlockAfterDelay(NSTimeInterval delay, void (^block)(void)) 2 { 3     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC*delay), 4       dispatch_get_current_queue(), block); 5 } poolo:注意 图中的dispatch_getcurrent_queue() 方法在ios6已经被kill了 现在用dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0) 第一个参数是优先级有,第二个参数为0或nil 如果要要对界面操作则使用dispatch_get_main_queue(); 参考:http://www.cnblogs.com/guwandong/archive/2012/08/08/2626211.html   4.可能是不太好的方法,用animation的completion参数 [代码]c#/cpp/oc代码: 1 [UIView animateWithDuration:0.0 delay:5.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{ 2 } completion:^(BOOL finished) { 3     //do stuff here 4 }];   5.使用NSOperationQueue,在应用程序的下一个主循环执行: [代码]c#/cpp/oc代码: 1 [[NSOperationQueue mainQueue] addOperationWithBlock:aBlock];   这个和调用performSelector: with afterDelay of 0.0f等价

上一篇:CentOS下传工程到GIT工程报错
下一篇:hdu 1846 Brave Game 博弈

相关文章

相关评论