NSTimer

NSTimer叫做“定时器”,它的作用如下
在指定的时间执行指定的任务
每隔一段时间执行指定的任务

调用下面的方法就会开启一个定时任务

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

每隔ti秒,调用一次aTarget的aSelector方法,yesOrNo决定了是否重复执行这个任务

通过invalidate方法可以停止定时器的工作,一旦定时器被停止了,就不能再次执行任务。只能再创建一个新的定时器才能执行新的任务

- (void)invalidate;

解决定时器在主线程不工作的问题

NSTimer *timer = [NSTimer timerWithTimeInterval:2 
                                         target:self 
                                       selector:@selector(next)
                                       userInfo:nil 
                                        repeats:YES];  
[[NSRunLoop mainRunLoop] addTimer:timer                         
                          forMode:NSRunLoopCommonModes];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • NSTimer是iOS最常用的定时器工具之一,在使用的时候常常会遇到各种各样的问题,最常见的是内存泄漏,通常我们使...
    bomo阅读 5,066评论 0 7
  • 之前要做一个发送短信验证码的倒计时功能,打算用NSTimer来实现,做的过程中发现坑还是有不少的。 基本使用 NS...
    WeiHing阅读 9,846评论 1 8
  • 参考资料 NSTimer深入理解RunLoop《编写高质量iOS与OS X代码的52个有效方法》中第52条:别忘了...
    水止云起阅读 4,057评论 0 0
  • NSTimer 计时器是一种很方便的对象。Foundation 框架中有个类叫做NSTimer,开发者可以指定绝对...
    KKLinJJ阅读 3,892评论 0 1
  • 毕业之后从一名学生转变为老师,而且是高中体育教师,穿着运动服走在校园,你看起来和学生没差,也难怪门卫师傅天天...
    潘姑娘不能懒阅读 2,773评论 0 0

友情链接更多精彩内容