码迷,mamicode.com
首页 > 移动开发 > 详细

IOS开发—NSTimer

时间:2015-07-28 23:22:37      阅读:428      评论:0      收藏:0      [点我收藏+]

标签:ios开发   nstimer   计时器   

创建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

标签:ios开发   nstimer   计时器   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!