我在我的應用程序有這樣的方法:遞增的NSTimer
- (void)initializeTimer{
self.myTimer = [NSTimer scheduledTimerWithTimeInterval:theInterval target:self
selector:@selector(move:) userInfo:nil repeats:YES];
}
我發現,如果我改變的時間間隔計時器仍與舊值。
我在我的應用程序有這樣的方法:遞增的NSTimer
- (void)initializeTimer{
self.myTimer = [NSTimer scheduledTimerWithTimeInterval:theInterval target:self
selector:@selector(move:) userInfo:nil repeats:YES];
}
我發現,如果我改變的時間間隔計時器仍與舊值。
創建計時器後,您無法更改間隔。查看Apple網站上的NSTimer
文檔。您必須無效並釋放定時器,然後使用新時間間隔創建一個新定時器。
我注意到,如果我更改計時器的時間間隔仍然與舊值。
這是因爲在C中調用函數並在Objective-C中發送消息是按值傳遞,而不是按名稱傳遞。你不通過你的theInterval
變量;你傳遞當時在那個變量中的值。該方法只接收值;它不知道你可能從哪裏通過它。在theInterval
變量或任何其他存儲器中放入不同的值對定時器沒有影響,因爲定時器不知道或關心該變量或其他任何其他位置。
要改變計時器的間隔,唯一的方法是發送一個setTimeInterval:
消息,正如Marc W在他的回答中所說的,當文檔將備份時,NSTimer對象不會響應這樣的消息。因此,沒有辦法改變現有定時器的間隔。