一、这两个类方法创建一个timer并把它指定到一个默认的runloop模式中
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
二、这两个类方法创建一个timer的对象,不把它指定到哪个runloop. (当创建之后,你必须手动的调用NSRunLoop下对应的方法 addTimer:forMode: 去将它指定到一个runloop模式中.)
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
三、创建一个NSTimer的实例 (当创建之后,你必须手动的调用NSRunLoop下对应的方法 addTimer:forMode: 去将它指定到一个runloop模式中.)
- (instancetype)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(id)ui repeats:(BOOL)rep-
通常使用
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
TimeInterval:时间间隔,浮点型的值。小于0时系统默认为0.1。用于指定没间隔该时间段触发一次指定的方法
target:方法作用对象 比如self
selector:作用方法
userInfo:当定时器失效时,由你指定的对象保留和释放该定时器。通常为nil
repeats:YES时,不断循环直至计时器失效或被释放。NO时只循环一次就失效
- (void)fire;立即触发计时器
- (void)invalidate;停止计时并使触发器失效
- (BOOL)isValid;判断触发器是否有效
- (NSTimeInterval)timeInterval;触发间隔时间
- (id)userInfo;一般为nil
- (NSDate *)fireDate;//开始时间
- (void)setFireDate:(NSDate *)date;//设置fireData,其实暂停、开始会用到
[timer setFireDate:[NSDate distantPast]];//开启
[timer setFireDate:[NSDate date]]; //继续。
[timer setFireDate:[NSDate distantFuture]];//暂停
暂停之后计时器仍然有效,而如果用invalidate则会失效
if ([timer isValid] == YES) {
[timer invalidate];
timer = nil;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/lotheve/article/details/47111267