我已經在我的應用程序中安裝了兩個計時器,每兩秒鐘重複一次。 一切工作正常,除非是時間使定時器無效。 手機鎖定時,我想使這些定時器無效,然後在手機解鎖時重新創建它們。NSTimer與Iphone上的EXC_BAD_ACCESS崩潰時無效
我使用通知來實現何時失效/創建定時器。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_didBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_willResigneActive:) name:UIApplicationWillResignActiveNotification object:nil];
這就是notify_didBecomeActive方法包括:
clockTicker = [[NSTimer scheduledTimerWithTimeInterval: 1
target: self
selector: @selector(showActivity)
userInfo: nil
repeats: YES] retain];
alarmTicker = [[NSTimer scheduledTimerWithTimeInterval: CONST_ALARMTIMER
target: self
selector: @selector(checkAndLaunchAlarm)
userInfo: nil
repeats: YES] retain];
這個notify_willResigneActive方法包括:
if (alarmTicker) {
[alarmTicker invalidate];
[alarmTicker release];
alarmTicker = NULL;
}
if (clockTicker) {
[clockTicker invalidate];
[clockTicker release];
clockTicker = NULL;
}
的問題是,當我調試這在第二個定時器無效,我得到錯誤。 奇怪的是,如果我切換定時器的命令(如首先使clockTicker無效)..我仍然在第二個定時器上出現錯誤。
我會做什麼錯?
感謝, 萊昂納多
也許..但無論如何它不工作。是第二個計時器崩潰,而不是釋放線。我無法獲得太多的信息..將嘗試使殭屍,看看有什麼我失蹤。 – Homer1980ar 2009-09-22 17:29:46