說我有一個視圖控制器。帶ARC的NSTimers壽命
在我的視圖控制器,我計劃從一些其他類調用每9秒方法:
redTimer=[NSTimer scheduledTimerWithTimeInterval:9 target:appDelegate.koule selector:@selector(fbWander) userInfo:nil repeats:YES];
我有這幾個問題。
如果我沒有將實例變量redTimer分配給返回的NSTimer,該怎麼辦?會發生什麼?該方法會每9秒鐘被調用一次嗎?
現在,由於我已將紅色定時器分配給定時器,如果redTimer被分配了不同的定時器(因此沒有任何東西會指向我的原始定時器了)會發生什麼情況,定時器是否會死亡並停止重複?
如果我將它分配給redTimer,然後我的視圖控制器被銷燬,該怎麼辦?每隔9秒會停止一次該方法嗎?
在這些情況下,計時器及其動作會發生什麼?
感謝
對於使用scheduledTimerWithTimeInterval創建的重複計時器...我傾向於將它們設置爲弱實例變量(或屬性)。然後,當我想停止定時器時,我只是使用像'[myTimer invalidate];'的代碼。這會導致runloop釋放計時器。它被取消分配,然後系統將我的弱引用歸零。如果我然後嘗試向計時器發送第二個無效消息,則弱iVar現在爲零,因此該呼叫不會執行任何操作。這意味着我不需要同時使計時器無效並將其設置爲零,並且我可以發送無效計時器以確保計時器正在運行。 –