首页
文章
留言
首页
文章
留言
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开发之WiFi传输文件
iOS开发之Touch ID指纹解锁实例
iOS开发之面向对象
全部分类
前端
后端
运维
架构
算法
数据库
移动应用
桌面应用
程序开发
热门标签
Supervisor
Android
C++
Shell
Composer
CentOS
PHP
MySQL
JavaScript
Git
GUI
Kubernetes
Redis
Sphinx
爬虫
macOS
Docker
Lua
HTML
Qt
Kafka
Python
NoSQL
CSS
Objective-C
Linux
MongoDB
OpenResty
Elasticsearch
Nginx
多线程
iOS
热门文章
HTML5常用特性总结
OpenResty+Lua+Kafka收集日志
jquery.tmpl使用总结
Kubernetes介绍
Supervisor使用总结
PHP使用Kafka
Kafka使用总结
Qt实现TCP通讯
iOS开发之定时执行任务
Elasticsearch详解