什麼是正確的做法?該NSTimer
文檔這樣說:安排GCD串行隊列上的NSTimers是否安全?
特別注意事項
必須從線程發送這封郵件上安裝了定時器 。如果您從另一個 線程發送此消息,則與定時器關聯的輸入源可能不會從其運行循環中被移除 ,這可能會阻止線程正確退出 。
由於GCD
不向你保證,一個串行隊列將始終是相同的線程上運行塊,什麼是正確的方法,以確保您安排和無效在同一線程上的NSTimer
?
編輯:
按照下面的答案的提醒,我創建MSWeakTimer
(https://github.com/mindsnacks/MSWeakTimer),這是使用GCD
可以從任何隊列中使用的自定義計時器實現。
MSWeakTimer的+1 ...解決了我們可怕的記憶問題! – jowie