IOS延时执行函数详解
2016-04-26 09:20
344 查看
目前所知ios延时函数有如下四种:
1、performSelector方法
[self performSelector:@selector(delayFun) withObject:nil afterDelay:1.0f];此方法以非阻塞的方式执行,且必须在主线程中执行,否则无效。该方法暂时未找到取消执行的方法。
2、定时器:NSTimer
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(delayFun) userInfo:nil repeats:NO];此方法以非阻塞的方式执行,且必须在主线程中执行,否则无效。可以通过NSTimer类的-
(void)invalidate;取消执行。
3、 sleep方式
[NSThread sleepForTimeInterval:1.0f];[self delayFun];
此方法以阻塞的方式执行,建方放到子线程中,以免卡住界面,且在任意线程中均可执行。没有找到取消执行的方法。
4.GCD方式
double delayInSeconds = 5.0;__block ViewController* bself = self;
dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(delayTime, dispatch_get_main_queue(), ^(void){
[bself delayFun]; });
此方法以非阻塞的方式执行,且在任意线程中均可执行。没有找到取消执行的方法。
相关文章推荐
- 国内90%以上的 iOS 开发者,对 APNs 的认识都是错的
- 【代码笔记】iOS-轮询弹出框
- iOS高级动画:圆形树展开&收起动画
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- iOS开发系列--地图与定位
- iOS开发系列--数据存取
- iOS开发系列--并行开发其实很容易多线程
- iOS开发系列--让你的应用“动”起来
- iOS开发系列--打造自己的“美图秀秀”
- iOS开发系列--触摸事件、手势识别、摇晃事件、耳机线控
- iOS开发系列--无限循环的图片浏览器
- iOS开发系列--IOS程序开发概览ios基础
- iOS 开发编码建议与编程经验
- iOS内存管理:从MRC到ARC实践
- iOS学习之iOS沙盒(sandbox)机制和文件操作
- iOS 视频播放
- IOS开发之GCD的基本知识
- iOS开发之NSOperation的基本知识
- 发布IOS产品被拒后如何再上传新发布包