我正在構建一個小型演示應用程序,其中包含MQTTKit和Estimote iOS SDK,這些應用程序對信標進行排序並將信標鄰近uuid,主要和次要信息發送給MQTT代理。在iOS7.1應用程序中無法找到EXC_BAD_ACCESS的原因
該示例工作良好一段時間,但有時它崩潰,我得到EXC_BAD_ACCESS (code=2, address=0x27c8eff4))
Thread 1 - Queue:com.apple.main-thread
。在Xcode中,在調試時,我可以看到下列異常時拋出:
CoreFoundation`CFRelease:
0x2fdc9f54: push {r4, r5, r6, r7, lr}
這就是異常的發生,但我不知道這代表着什麼,也沒有什麼意思。
任何人都可以指出的是,我沒有保留或提前釋放到,因爲從我讀過的對象的行中的東西被釋放提前,並試圖釋放後對其進行訪問?
編輯:按照註釋的建議,我已經啓用例外NSZombies
和斷點,現在我得到更多的信息:
Pulsr(21312,0x3cb4118c) malloc: *** error for object 0x16f27404: incorrect checksum for freed object - object was probably modified after being freed. *** set a breakpoint in malloc_error_break to debug
以及它停止線處[UIView animateWith ...];
:
dispatch_async(dispatch_get_main_queue(), ^(void){
[UIView animateWithDuration:0.250
delay:0
options:UIViewAnimationOptionCurveEaseInOut
animations:^{
weakSelf.streamingCountLabel.layer.backgroundColor = streaming ? weakSelf.yellowColor.CGColor : weakSelf.redColor.CGColor;
}
completion:nil];
if (!streaming)
{
weakSelf.streamingCountLabel.text = @"0";
}
});
你不能找到這一行? NSZOmbies不幫你? – Larme
啓用異常斷點,並在您的問題中包含調用堆棧。此外,啓用殭屍@Larme建議。您可以很容易地找到所有這些步驟的說明 – jrturton
嘗試爲您的項目運行'Analyze',有時它能夠發現您錯過的明顯問題。 –