我已经在我的应用程序中安装了两个计时器,每两秒钟重复一次。 一切工作正常,除非是时间使定时器无效。 手机锁定时,我想使这些定时器无效,然后在手机解锁时重新创建它们。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