1. 程式人生 > >第52條:別忘了NSTimer會保留其目標對象

第52條:別忘了NSTimer會保留其目標對象

with 可用 led bsp 日期 參數表 表示 tar inf

  本條要點:(作者總結)

  計時器是一種很方便也很有用的對象。Foundation 框架中有個類叫做 NSTimer,開發者可以指定絕對的日期與時間,以便到時執行任務,也可以指定執行任務的相對延時時間。計時器還可以重復運行任務,有個與之相關聯的 “間隔值”(interval)可用來指定任務的觸發頻率。比方說,可以每 5 秒輪詢某個資源。

  計時器要和 “運行循環”(run loop)相關聯,運行循環到時候會觸發任務。創建 NSTimer 時,可以將其“預先安排”在當前的運行循環中,也可以先創建好,然後由開發者自己來調度。無論采用哪種方式,只有把計時器放在運行循環裏,它才能正常觸發任務。例如,下面這個方法可以創建計時器,並將其預先安排在當前循環中:

  + (NSTimer *)scheduledTimerWithTimeInterval:(NSTimeInterval)seconds target:(id)target selector:(SEL)selector userInfo:(id)userInfo repeats:(BOOL)repeats

  用此方法創建出來的計時器,會在指定的間隔時間之後執行任務。也可以令其反復執行任務,直到開發者稍後將其手動關閉為止。target 與 selector 參數表示計時器將在哪個對象上調用哪個方法。

第52條:別忘了NSTimer會保留其目標對象