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

iOS开发总结(A0) - NStimer

时间:2015-07-01 23:34:17      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

NStimer是ios开发的计时器,简单易用,但有几个注意事项

1. 创建NStimer的两个常用方法是

+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;

第一个创建的timer,需要手动加到runloop中去,否则timer 不起作用,加到runloop的方法是:

    [[NSRunLoop mainRunLoop] addTimer:timer forMode:RunLoopMode];

或者

    [[NSRunLoop currentRunLoop] addTimer:timer forMode:RunLoopMode];

mainRunloop和currentRunLopp的区别是

- mainRunloop是主线程的runloop

- currentRunLopp是当前线程的runloop

RunLoopMode有两种:NSDefaultRunLoopMode和NSRunLoopCommonModes,区别:

- NSDefaultRunLoopMode, 如tableview在滚动时,timer失效

NSRunLoopCommonModes,tableview滚动时,timer不失效

更多信息,参考 

http://www.cnblogs.com/zhangjie/p/3727469.html

http://www.cnblogs.com/zhangjie/p/3727485.html

 

第二个创建的timer,系统自动加到runloop中去( current run loop in the default mode)

 

2. timer 时retain target 的,只有timer invalidate后,才释放target. 

对于不重复的timer,执行一次之后timer自动失效,对于重复的timer,需要手动[timer invalidate];

 

3. timer 时间间隔是大概的时间,要准确及时,可使用CADisplayLink(参考http://www.cnblogs.com/YouXianMing/p/4029547.html)和 GCD(后续将专门学习总结GCD)

 

 

 

iOS开发总结(A0) - NStimer

标签:

原文地址:http://www.cnblogs.com/beddup/p/4614664.html

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