首页
文章
留言
首页
文章
留言
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开发之WiFi传输文件
iOS开发之收集崩溃信息
iOS开发之多线程
iOS开发之面向对象
iOS开发之类与类扩展
全部分类
前端
后端
运维
架构
算法
数据库
移动应用
桌面应用
程序开发
热门标签
Elasticsearch
OpenResty
NoSQL
C++
Python
CSS
macOS
JavaScript
Redis
MongoDB
CentOS
Lua
GUI
iOS
Kafka
Composer
Git
爬虫
Kubernetes
MySQL
多线程
Qt
Android
Linux
Nginx
PHP
Supervisor
HTML
Docker
Sphinx
Objective-C
Shell
热门文章
PHP使用Kafka
iOS开发之定时执行任务
10种常见的软件架构模式
Nginx常用配置说明
Composer使用总结
Qt实现TCP通讯
JavaScript常用函数总结
iOS开发之Touch ID指纹解锁实例
Kubernetes介绍
macOS常用命令