NSTimer *_timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(onTimer) userInfo:nil repeats:YES];
1.创建定时器 关键点:最后一个参数:repeats 当是NO 时 只调用一次 _timer运行一次就自动停止运行当是YES时 上面设置的时每2秒调用一次ontimer方法
注意:将计数器的repeats设置为YES的时候,self的引用计数会加1。因此可能会导致self(即viewController)不能release,所以,必须在viewWillAppear的时候,将计数器timer停止,否则可能会导致内存泄露。
2.// 取消定时器
[_timer invalidate];
_timer = nil;
停止timer的运行,但这个是永久的停止:(注意:停止后,一定要将timer赋空,否则还是没有释放。
3.在后台运行,暂用CPU)可以使用下面的代码实现:
-(void)viewWillAppear:(BOOL)animated{
// 开启定时器
if (_timer != nil) {
[_timer setFireDate:[NSDate distantPast]];
}
}
-(void)viewDidDisappear:(BOOL)animated{
// 关闭定时器
if (_timer != nil) {
[_timer setFireDate:[NSDate distantFuture]];
}
}