使計時器無效

[timer invalidate];
timer = nil;

這將停止計時器開火。**必須從建立計時器的執行緒中呼叫,**請參閱 Apple 的註釋

你必須從安裝了計時器的執行緒傳送此訊息。如果從另一個執行緒傳送此訊息,則可能無法從其執行迴圈中刪除與計時器關聯的輸入源,這可能會阻止執行緒正常退出。

設定 nil 將幫助你檢查它是否正在執行。

if(timer) {
    [timer invalidate];
    timer = nil;
}

//Now set a timer again.