2011-11-30 65 views
0

目前我正在創建一個NSTimer,每秒調用一次我的方法。如何停止我的NSTimer線程進一步執行選擇器

我這樣做像這樣:

[NSTimer scheduledTimerWithInterval:1 target:self selector:@selector(clocktick) userInfo:nil repeats:YES]; 

我怎麼能阻止這從打電話clocktick

我試過像這樣分配它:NSTimer *myTimer = [NSTimer ...,然後使用myTimer = nil;但是什麼也沒做。

回答

4

你需要[myTimer invalidate]這會爲你殺死定時器。

1

您是否嘗試過使用'invalidate'(例如[timerInstance invalidate];例如)?

或者是您沒有對計時器實例的引用了嗎?

+0

你可以創建一個私有屬性來保存對類中定時器的引用。或者讓您正在調用的函數接受NSTimer *作爲參數。這樣你可以取消定時器每秒調用的函數中的定時器。 (例如: - (void)targetMethod:(NSTimer *)theTimer {...}) – blueyond

3

您必須持有對它的引用,然後發送invalidate消息吧:

[myTimer invalidate]; 

我希望它能幫助!