首页
文章
留言
首页
文章
留言
iOS开发之定时执行任务
2016 年 11 月 11 日
移动应用
Objective-C
iOS
在 iOS 开发中,总结了三种执行定时任务的方法。分别使用 performSelector,GCD 和 NSTimer 来实现定时操作的功能。很多场景都需要用到这三种方法中的一种。所以,非常实用。 下面介绍三种方法执行定时任务: #### 方法一:performSelector ```objectivec // 1.5s后自动调用self的test1方法 [self performSelector:@selector(test1) withObject:nil afterDelay:1.5]; ``` #### 方法二:GCD ```objectivec dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ // 1.5s后自动执行这个block里面的代码 } ``` #### 方法三:NSTimer ```objectivec // 1.5s后自动调用self的test2方法,repeats如果为YES,意味着每隔1.5s都会调用一次 [NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(test2) userInfo:nil repeats:NO]; ``` ```objectivec // 解决定时器在主线程不工作的问题 NSTimer *timer = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(test3) userInfo:nil repeats:YES]; [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes]; ``` ```objectivec // 通过invalidate方法可以停止定时器的工作,一旦定时器被停止了,就不能再次执行任务。只能再创建一个新的定时器才能执行新的任务 - (void)invalidate; ```
2
相关文章
iOS开发之收集崩溃信息
iOS开发之面向对象
iOS开发之类与类扩展
iOS开发之Touch ID指纹解锁实例
iOS开发之多线程
全部分类
前端
后端
运维
架构
算法
数据库
移动应用
桌面应用
程序开发
热门标签
Elasticsearch
Composer
多线程
macOS
iOS
GUI
CentOS
MongoDB
Docker
CSS
Linux
Kubernetes
Supervisor
Kafka
MySQL
Objective-C
Redis
Python
JavaScript
Android
PHP
HTML
OpenResty
Lua
C++
Nginx
Shell
NoSQL
Sphinx
Qt
Git
爬虫
热门文章
Composer使用总结
PHP开发之字符串处理
Qt实现TCP通讯
Git使用总结
Linux命令总结
JavaScript常用函数总结
iOS开发之面向对象
iOS开发之WiFi传输文件
10种常见的软件架构模式
Elasticsearch详解