自定義定時器的一點總結

Yang1492955186752發表於2017-12-13

當使用GCD來模擬NSTImer的實現的時候發現dispatch_source_set_timer(_source, dispatch_time_t start, (interval * NSEC_PER_SEC), 0)設定的source事件被喚醒後不會按照原先設定的開始時間來呼叫dispatch_source_set_event_handler的block,而是在dispatch_source_set_event_handler被呼叫的時候就會被執行一次block,然後再按規定時間執行,這與NSTimer只有到觸發時間才執行有點不一致。

使用GCD來模擬NSTImer的最大好處就是不會強引用target,所以不用擔心記憶體洩漏。

相關文章