首页 > 移动平台 > 详细

IOS开发—NSTimer

时间:2015-07-28 23:19:29      阅读:478      评论:0      收藏:0      [点我收藏+]

创建timer对象的三种方法

一、这两个类方法创建一个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则会失效

在invalidate之前最好先用isValid先判断是否还在线程中

if ([timer isValid] == YES) {
        [timer invalidate];
        timer = nil;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

IOS开发—NSTimer

原文:http://blog.csdn.net/lotheve/article/details/47111267

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!