NSTimer总结

NSTimer使用方法

  1. 初始化
    + (NSTimer)timerWithTimeInterval:(NSTimeInterval)titarget:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
    + (NSTimer
    )scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;

注:创建NSTimer定时器对象时,没用schedeled方式初始化,创建后需要手动addTimer:forMode:将timer添加到一个runloop中。
而schedeled方式初始化后,就会将timer以默认mode直接添加到当前的runloop中。
其中userInfo:该参数可以为nil,当定时器失效时,由你指定的对象保留和释放该定时器。

  1. 举例
    NSTimer *timer1 = [NSTimer scheduledTimerWithTimeInterval:2.0f target:self selector:@selector(timerFired:) userInfo:nil repeats:YES];

    NSTimer *timer2 = [NSTimer timerWithTimeInterval:2.0 target:selfselector:@selector(timerFired:)userInfo:nil   repeats:YES];     
    [NSRunloop currentRunLoop] addTimer:timer2 forMode:NSDefaultRunLoopMode];    
    
  2. 触发(启动)

当timer定时器对象创建完后,会在指定的timeInterval后自动触发
也可以使用- (void)fire使其定时器立即触发
在重复执行的定时器中调用此方法后立即触发该定时器,但不会中断其之前的执行计划;
在不重复执行的定时器中调用此方法,立即触发后,就会使这个定时器失效。

  1. 停止

-(void)invalidate这是唯一一个可以将定时器从润loop中移出的方法。

  1. 注意事项

NSTimer可以精确到50-100毫秒.
NSTimer不是绝对准确的,而且中间耗时或阻塞错过下一个点,那么下一个点就pass过去了.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 创建NSTimer 创建NSTimer的常用方法是: + (NSTimer *)scheduledTimerWit...
    LanWor阅读 1,398评论 0 2
  • NSTimer在IOS开发中会经常用到,尤其是小型游戏,然而对于初学者时常会注意不到其中的内存释放问题,将其基本用...
    zhong_JF阅读 619评论 0 0
  • NSTimer 定时器总结 一、初始化方法:有五种初始化方法,分别是 + (NSTimer *)timerWith...
    MYS_iOS_8801阅读 567评论 0 0
  • 他一身大红喜服精神奕奕。 她在坐于角落安静的看着,嘴角的微笑溢满苦涩。 她看他来回敬酒红光满面,终究是鼓起勇气端酒...
    莫九爷阅读 310评论 0 0
  • 端午祭 端午,端午 没有人知道两千多年前的屈原 会影响现在人们的生活 也没有人知道,现在的人 究竟是为什么过端午 ...
    修行clytie阅读 241评论 0 1