前言:
工作中常常需要使用NSTimer定时器.写下这篇日志是为了记下学到的东西.
常用方法讲解:
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
第一个类工厂创建方法需要搭配[[NSRunLoop currentRunLoop]addTimer:<#(nonnull NSTimer *)#> forMode:<#(nonnull NSString *)#>]使用,才能开启定时器
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
第二个类工厂创建方法,创建后直接开启定时器
- (instancetype)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(nullable id)ui repeats:(BOOL)rep NS_DESIGNATED_INITIALIZER;
第三个实例方法可以安排开启时间,也需要配合NSRunloop使用
- (void)fire;
将运行中的定时器,快速跳跃到下一次运行状态.例如一秒一启动的定时器,当使用这个方法的时候,快速启动.
- (void)invalidate;
试定时器失效,注意失效不等于定时器销毁.常配合_timer = nil;使用.