首页
文章
留言
首页
文章
留言
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开发之WiFi传输文件
iOS开发之面向对象
iOS开发之Touch ID指纹解锁实例
iOS开发之多线程
全部分类
前端
后端
运维
架构
算法
数据库
移动应用
桌面应用
程序开发
热门标签
macOS
Python
Objective-C
HTML
Nginx
Docker
JavaScript
Redis
Git
Elasticsearch
Linux
Sphinx
MySQL
Lua
爬虫
PHP
Composer
Android
Kubernetes
Kafka
MongoDB
Qt
iOS
NoSQL
CentOS
Shell
C++
CSS
多线程
GUI
OpenResty
Supervisor
热门文章
iOS开发之多线程
Elasticsearch详解
Redis缓存击穿、穿透、雪崩
PHP开发之字符串处理
Composer使用总结
CSS让元素水平垂直居中
OpenResty+Lua+Kafka收集日志
Nginx常用配置说明
Supervisor使用总结
Git使用总结