1、创建NSTimer:
self.timer = [NSTimer scheduledTimerWithTimeInterval:self.timeInterval target:self selector:@selector(timerAction:) userInfo:nil repeats:YES];
2、
(1)可以使用self.timer.fireDate = [NSDate distantFuture];
暂停计时器;
(2)如果使用self.timer.fireDate = [NSDate distantPast];
重启计时器,则timerAction会立即执行;
(3)如果希望重启计时器时时间间隔重新计算,也就是self.timeInterval之后才执行timerAction,则将fireDate设置为当前时间往后self.timeInterval:
self.timer.fireDate = [NSDate dateWithTimeIntervalSinceNow:self.timeInterval];
3、使用- invalidate
暂停的NSTimer无法重启。(invalidate从run loop中移除NSTimer。调用这个方法之后NSTimer就不会强引用target(即self),使用“CFGetRetainCount((__bridge CFTypeRef)self)”可以查看self的引用计数。)(UIView的invalidate可以在“-didMoveToSuperview:”的self.superview=nil时调用。)