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