IOS开发之延时执行的几种方法
来源:互联网 发布:mac系统照片资源库 编辑:程序博客网 时间:2024/05/16 06:51
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
}
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等价
- IOS开发之延时执行的几种方法
- iOS之延时执行(睡眠)的几种方法
- iOS延时执行的几种方法
- IOS 中方法延时执行的几种方法
- iOS开发 -- 延时执行某个方法的几种方式的比较和汇总
- 【iOS开发系列】延时执行的几种方式
- iOS中延时执行(睡眠)的几种方法
- iOS 延时执行某个方法的几种方式
- Android延时执行的几种方法
- Android延时执行的几种方法
- Android延时执行的几种方法
- Android延时执行的几种方法
- Android延时执行的几种方法
- iOS_延时执行的几种方法
- Android延时执行的几种方法
- Android延时执行的几种方法
- Android延时执行的几种方法
- Android延时执行的几种方法
- What’s new in Windows Server 2012 R2 Hyper-V
- Android开发之Activity对话框及发短信
- WWDC,夜深,给果粉,熬夜党发个视频娱乐一下
- 用Gvim建立IDE编程环境 (Windows篇)
- 学不进去?可以试着这么做……
- IOS开发之延时执行的几种方法
- 精明的程序员——Linux的远程控制
- 物料编码间隔创建问题解决方案共享-note发布
- 3 分钟搞定 Android Push
- IOS开发之延迟执行
- ContactsContract.Contacts与ContactsContract.CommonDataKinds.Phone的区别
- chroot, busybox和搭建沙盒
- POJ 1291: This Sentence is False
- 亿万用户网站MySpace的成功秘密