IOS,延时执行的几种方法
2016-01-20 00:00
267 查看
摘要: IOS,延时执行的几种方法
1.performSelector方法
此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
暂时未找到取消执行的方法。
2.定时器:NSTimer
此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
可以通过NSTimer类的- (void)invalidate;取消执行。
Repeats参数等于YES的话。一直执行这个方法。如果是NO,执行一次。
3. sleep方式
此方式在主线程和子线程中均可执行。
是一种阻塞的执行方式,建方放到子线程中,以免卡住界面
没有找到取消执行的方法。
4.GCD方式
此方式在可以在参数中选择执行的线程。
是一种非阻塞的执行方式,
没有找到取消执行的方法。
1.performSelector方法
[self performSelector:@selector(delayMethod) withObject:nil afterDelay:1.0f];
此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
暂时未找到取消执行的方法。
2.定时器:NSTimer
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];
此方式要求必须在主线程中执行,否则无效。
是一种非阻塞的执行方式,
可以通过NSTimer类的- (void)invalidate;取消执行。
Repeats参数等于YES的话。一直执行这个方法。如果是NO,执行一次。
3. sleep方式
[NSThread sleepForTimeInterval:1.0f]; [self delayMethod];
此方式在主线程和子线程中均可执行。
是一种阻塞的执行方式,建方放到子线程中,以免卡住界面
没有找到取消执行的方法。
4.GCD方式
double delayInSeconds = 1.0;
__block ViewController* bself = self;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
[bself delayMethod]; });
此方式在可以在参数中选择执行的线程。
是一种非阻塞的执行方式,
没有找到取消执行的方法。
相关文章推荐
- iOS 分类、扩展和继承的区别
- IOS中计算文件的大小
- IOS博客项目搭建-01-项目基本环境部署
- iOS学习之数据持久化详解
- iOS 的 XMPPFramework 简介
- iOS 页面间几种传值方式(属性,代理,block,单例,通知)
- 【IOS学习基础】weak和strong、懒加载、循环引用
- 蓝懿ios技术交流和心得分享16.1.19
- iOS (布局机制)layout机制相关方法
- IOS火星坐标转换
- FFmpeg IOS调用命令水印视频崩溃等memeory warning问题
- [iOS问题归总]iPhone上传项目遇到的问题
- iOS7新特性 ViewController转场切换(二) 系统视图控制器容器的切换动画---push pop present
- 苹果iOS手机系统诊断功能是后门吗?
- 一张图概括iOS知识点
- iOS 数据解析 JSONModel的介绍
- ios开发中类方法与self的注意点 与实例方法区别
- IOS开发:手势触摸事件
- iOS开发之常用插件
- iOS设计模式简介