iOS

iOS定时器全解析

2016-12-03  本文已影响193人  SpursGo

iOS定时器平时用的比较多,原理比较简单,但是真正用对却不是哪么简单。本篇就目前比较常用的定时器以及使用过程中需要注意的问题讲解一下,如有不对的地方,欢迎指正

第一类定时器 NSTimer

 + (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
 + (NSTimer *)timerWithTimeInterval:(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;

不需要加到runloop中的初始化方法有两个,默认添加到当前线程所在的runloop中

+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
[self.timer setFireDate:[NSDate distantFuture]];  //暂停一个正在执行中的Timer 
[self.timer setFireDate:[NSDate distantPast]];    //开始执行一个执行中的Timer
    [self.timer invalidate];
    self.timer = nil;
上一篇 下一篇

猜你喜欢

热点阅读