1)问题描述
NSTimer 自带的方法中是没有提供暂停和恢复的方法;
2)解决方案
NSTimer 有个方法是 setFireDate
可以利用这个方法实现暂停和恢复;
3)实行步骤
①创建一个定时器进行重复执行某个方法;
self.airTimer = [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:self.airTimer forMode:NSRunLoopCommonModes];
②暂停:
原理是把触发时间设置在未来,既很久之后,这样定时器自动进入等待触发的状态;
[self.airTimer setFireDate:[NSDate distantFuture]];
③恢复:
原理是把触发时间设置为现在,设置后定时器马上恢复工作状态;
[self.airTimer setFireDate:[NSDate date]];
④停止:
系统提供的方法;
[self.airTimer invalidate];
网友评论