ios的延迟执行方法

发布时间:2014-10-22 14:44:44编辑: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 博弈

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款