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];
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • NSTimer是iOS最常用的定時器工具之一,在使用的時候常常會遇到各種各樣的問題,最常見的是內存泄漏,通常我們使...
    bomo閱讀 1,257評論 0 7
  • 之前要做一個發送短信驗證碼的倒計時功能,打算用NSTimer來實現,做的過程中發現坑還是有不少的。 基本使用 NS...
    WeiHing閱讀 4,400評論 1 8
  • 參考資料 NSTimer深入理解RunLoop《編寫高質量iOS與OS X代碼的52個有效方法》中第52條:別忘了...
    水止云起閱讀 727評論 0 0
  • NSTimer 計時器是一種很方便的對象。Foundation 框架中有個類叫做NSTimer,開發者可以指定絕對...
    KKLinJJ閱讀 677評論 0 1
  • 畢業之后從一名學生轉變為老師,而且是高中體育教師,穿著運動服走在校園,你看起來和學生沒差,也難怪門衛師傅天天...
    潘姑娘不能懶閱讀 356評論 0 0