1.初始化计时器
-(NSTimer*) timer
{
if(_timer==nil)
{
_timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self.listModel selector:@selector(comedownCutEvent) userInfo:nil repeats:YES];
[[NSRunLoop mainRunLoop] addTimer:_timer forMode:NSRunLoopCommonModes];//比如tableView滑动时,如果不加入这句话,计时器会出现卡顿等其他现象
}
return _timer;
}
2.开启计时器
- (void)startTimer
{
[self.timer setFireDate:[NSDate distantPast]];
}
3.暂停计时器
- (void)pauseTimer
{
[self.timer setFireDate:[NSDate distantFuture]];
}
4.销毁计时器
-(void) stopTimer
{
[self.timer invalidate];
self.timer=nil;
}
5.假设计时器加在View上,需要在视图被释放时销毁计时器
-(void) willMoveToSuperview:(UIView*)newSuperview
{
[superwillMoveToSuperview:newSuperview];
if(!newSuperview &&self.timer)
{
[self stopTimer]; //销毁计时器
}
}
6.倘若计时器的添加和销毁均有处理,离开控制器页面时,计时器仍然在运行,那么可能存在计时器持有了控制器等问题,需要将控制器等进行弱引用。