1
當我的應用程序進入背景時,我停用了我應用程序中的所有計時器。其實它只是一個計時器。我這樣做的方式如下:使用nstimer的奇怪分段錯誤錯誤
- (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)
像定時器的聲音被釋放,你正在操作垃圾或不同的對象。也許你計劃重複:不,計時器已經自動失效? – Jano