您的位置:首页 > 移动开发 > IOS开发

iOS开发技术之延迟执行

2016-07-08 10:44 507 查看
转自:点击打开链接

延迟执行的几种方式;

延迟1秒执行代码
-(void)delayMethod{
NSLog(@"delayMethodEnd");
}


performSelector方法:
[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];

此方式要求必须在主线程中执行,否则无效。

是一种非阻塞的执行方式,暂时未找到取消执行的方法。
定时器:NSTimer;
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];

此方式要求必须在主线程中执行,否则无效。

是一种非阻塞的执行方式,可以通过
NSTimer
类的
- (void)invalidate;
取消执行。
sleep方式;
[NSThread sleepForTimeInterval:1.0f]; [self delayMethod];

此方式在主线程和子线程中均执行。

是一种阻塞的执行方式,
建议放到子线程中,以避免卡住界面
,没有找到取消执行的方法。
GCD方式

__weak id safeSelf = self;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[safeSelf delayMethod];
});

此方式可以在参数中选择执行的线程。

是一种非阻塞的执行方式,

没有找到取消执行的方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  延迟加载