当我的应用程序进入背景时,我会停用我的应用程序中的所有计时器。实际上它只是一个计时器。我这样做是通过以下方式:
- (void) invalidate_timer {
if( self.timer != nil ) {
[self.timer invalidate];
self.timer = nil; <-- App crashes on this line
}
}
但应用程序有时(并非总是)在下一行崩溃。我完全糊涂了……这怎么可能?
错误是:线程1:EXC_BAD_ACCESS(代码=1,0xeblablabla;))
编辑:
- (void) invalidate_timer {
if( self.timer != nil ) {
[self.timer invalidate];
//self.timer = nil; <-- doing this, and the app no longer crashes
}
}
这有多疯狂???
编辑 2:这是堆栈跟踪的顶部:
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x31985848 __kill + 8
1 BlackLane2 0x0015f85e fatal_signal_handler (PLCrashSignalHandler.m:103)
2 libsystem_c.dylib 0x3408d7e6 _sigtramp + 42
3 BlackLane2 0x0013b586 -[FutureTourDetailsVC invalidate_timer] (FutureTourDetailsVC.m:159)