NSTimer

俗稱定時(shí)器。
創(chuàng)建方法根據(jù)功能有不同的創(chuàng)建方式:

//參數(shù)repeats是指定是否循環(huán)執(zhí)行,YES將循環(huán),NO將只執(zhí)行一次。
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
//timerWithTimeInterval這兩個(gè)類方法創(chuàng)建出來的對(duì)象如果不用 addTimer: forMode方法手動(dòng)加入主循環(huán)池中,將不會(huì)循環(huán)執(zhí)行。并且如果不手動(dòng)調(diào)用fair,則定時(shí)器不會(huì)啟動(dòng)。
+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
//scheduledTimerWithTimeInterval這兩個(gè)方法不需要手動(dòng)調(diào)用fair,會(huì)自動(dòng)執(zhí)行,并且自動(dòng)加入主循環(huán)池。
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;
+ (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)ti invocation:(NSInvocation *)invocation repeats:(BOOL)yesOrNo;
- (instancetype)initWithFireDate:(NSDate *)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(nullable id)ui repeats:(BOOL)rep NS_DESIGNATED_INITIALIZER;

NSTimer和RunLoop有關(guān)系?NSTimer為什么要添加到RunLoop中才會(huì)有作用?
NSTimer其實(shí)也是一種資源,如果看過多線程變成指引文檔的話,我們會(huì)發(fā)現(xiàn)所有的source如果要起作用,就得加到runloop中去。同理timer這種資源要想起作用,那肯定也需要加到runloop中才會(huì)又效嘍。如果一個(gè)runloop里面不包含任何資源的話,運(yùn)行該runloop時(shí)會(huì)立馬退出。你可能會(huì)說那我們APP的主線程的runloop我們沒有往其中添加任何資源,為什么它還好好的運(yùn)行。我們不添加,不代表框架沒有添加,如果有興趣的話你可以打印一下main thread的runloop,你會(huì)發(fā)現(xiàn)有很多資源。
Runloop RunTime是我們接觸OC語言的第一步,我們希望在短期內(nèi)好好的了解一下這些C語言機(jī)制。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、什么是NSRunLoop NSRunLoop是消息機(jī)制的處理模式 NSRunLoop的作用在于有事情做的時(shí)候使...
    lbfly_boy閱讀 504評(píng)論 0 2
  • 一、什么是NSRunLoop NSRunLoop是消息機(jī)制的處理模式 NSRunLoop的作用在于有事情做的時(shí)候使...
    呦釋原點(diǎn)閱讀 727評(píng)論 0 2
  • 一、什么是NSRunLoop NSRunLoop是消息機(jī)制的處理模式 NSRunLoop的作用在于有事情做的時(shí)候使...
    KK_boy閱讀 549評(píng)論 0 0
  • Run loop 剖析:Runloop 接收的輸入事件來自兩種不同的源:輸入源(intput source)和定時(shí)...
    Mitchell閱讀 12,655評(píng)論 17 111
  • 之前要做一個(gè)發(fā)送短信驗(yàn)證碼的倒計(jì)時(shí)功能,打算用NSTimer來實(shí)現(xiàn),做的過程中發(fā)現(xiàn)坑還是有不少的。 基本使用 NS...
    WeiHing閱讀 4,474評(píng)論 1 8

友情鏈接更多精彩內(nèi)容