没有合适的资源?快使用搜索试试~ 我知道了~
前言 相信一说到定时器, 我们使用最多的就是NSTimer 和 GCD 了, 还有另外一个高级的定时器 CADisplayLink;,下面将给大家详细介绍关于iOS定时器使用的相关内容,话不多说了,来一起看看详细的介绍吧。 一. NSTimer NSTimer的初始化方法有以下几种: 会自动启动, 并加入 MainRunloop 的 NSDefaultRunLoopMode 中, 注意: 这里的自动启动, 并不是马上就会启动, 而是会延迟大概一个interval的时间: + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterva
资源详情
资源评论
资源推荐
iOS中最全的各种定时器使用教程中最全的各种定时器使用教程
前言前言
相信一说到定时器, 我们使用最多的就是NSTimer 和 GCD 了, 还有另外一个高级的定时器 CADisplayLink;,下面将给大家详
细介绍关于iOS定时器使用的相关内容,话不多说了,来一起看看详细的介绍吧。
一一. NSTimer
NSTimer的初始化方法有以下几种:
会自动启动, 并加入 MainRunloop 的 NSDefaultRunLoopMode 中,
注意注意: 这里的自动启动, 并不是马上就会启动, 而是会延迟大概一个interval的时间:
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)interval repeats:(BOOL)repeats block:(void (^)(NSTimer *timer))block
参数参数:
internal : 时间间隔, 多久调用一次
repeats: 是否重复调用
block: 需要重复做的事情
使用使用:
[NSTimer scheduledTimerWithTimeInterval:1 repeats:YES block:^(NSTimer * _Nonnull timer) {
static NSInteger num = 0;
NSLog(@"%ld", (long)num);
num++;
if (num > 4) {
[timer invalidate];
NSLog(@"end");
}
}];
NSLog(@"start");
这时, 控制台的输出:
2016-12-29 16:29:53.901 定时器[11673:278678] start
2016-12-29 16:29:54.919 定时器[11673:278678] 0
2016-12-29 16:29:55.965 定时器[11673:278678] 1
2016-12-29 16:29:56.901 定时器[11673:278678] 2
2016-12-29 16:29:57.974 定时器[11673:278678] 3
2016-12-29 16:29:58.958 定时器[11673:278678] 4
2016-12-29 16:29:58.959 定时器[11673:278678] end
可以看出, 这里的internal设置为1s, 大概延迟了1s才开始执行block里的内容;
这里的停止定时器, 我直接在block里进行的, 如果使用一个全局变量来再其他地方手动停止定时器,需要这样进行:
[self.timer invalidate];
self.timer = nil;
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo
参数参数:
ti: 重复执行时间间隔
invocation: NSInvocation实例, 其用法见NSInvocation的基本用法
yesOrNo: 是否重复执行
示例:
weixin_38693589
- 粉丝: 5
- 资源: 929
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0