前言:
? 工作中常常需要使用NSTimer定時(shí)器.寫下這篇日志是為了記下學(xué)到的東西.
常用方法講解:
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
第一個(gè)類工廠創(chuàng)建方法需要搭配[[NSRunLoop currentRunLoop]addTimer:<#(nonnull NSTimer *)#> forMode:<#(nonnull NSString *)#>]使用,才能開啟定時(shí)器
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
第二個(gè)類工廠創(chuàng)建方法,創(chuàng)建后直接開啟定時(shí)器
- (instancetype)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(nullable id)ui repeats:(BOOL)rep NS_DESIGNATED_INITIALIZER;
第三個(gè)實(shí)例方法可以安排開啟時(shí)間,也需要配合NSRunloop使用
- (void)fire;
將運(yùn)行中的定時(shí)器,快速跳躍到下一次運(yùn)行狀態(tài).例如一秒一啟動(dòng)的定時(shí)器,當(dāng)使用這個(gè)方法的時(shí)候,快速啟動(dòng).
- (void)invalidate;
試定時(shí)器失效,注意失效不等于定時(shí)器銷毀.常配合_timer = nil;使用.