2010-11-01 87 views
8

我活的應用程序最常見的崩潰之一是在MKMapView崩潰。它在內部方法-[MKMapView mapTileViewDidFinishLoading:]上崩潰。在我的測試中,我無法回溯崩潰,但在iTunes Connect的崩潰報告中非常頻繁。今天有什麼經驗可以幫助你解決這個問題嗎?這只是一張非常簡單的地圖,只顯示一個註釋。我需要MKMapView崩潰幫助

下面是這個崩潰的完整的堆棧跟蹤:

Exception Type: EXC_BAD_ACCESS (SIGBUS) 
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000009 
Crashed Thread: 0 

Thread 0 Crashed: 
0 libobjc.A.dylib     0x339737d8 objc_msgSend + 16 
1 MapKit       0x345709ec -[MKMapView mapTileViewDidFinishLoading:] 
2 CoreFoundation     0x344492e4 -[NSObject(NSObject) performSelector:withObject:] 
3 Foundation      0x3326981e __NSThreadPerformPerform 
4 CoreFoundation     0x34460f1e __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 
5 CoreFoundation     0x34432ba0 __CFRunLoopDoSources0 
6 CoreFoundation     0x34432444 __CFRunLoopRun 
7 CoreFoundation     0x34432270 CFRunLoopRunSpecific 
8 CoreFoundation     0x34432178 CFRunLoopRunInMode 
9 GraphicsServices    0x3026b5ec GSEventRunModal 
10 GraphicsServices    0x3026b698 GSEventRun 
11 UIKit       0x31ad011c -[UIApplication _run] 
12 UIKit       0x31ace128 UIApplicationMain 
13 MYApp       0x00002e08 main + 36 
14 MYApp       0x00002dd8 start + 32 
+0

可能是值得分享一些... – 2010-11-01 09:05:44

+0

我遇到了同樣的問題。發佈mapview時會發生這種情況嗎?你使用任何覆蓋或註釋? – matheeeny 2010-11-02 18:30:47

回答

11

我想我可以在我自己的應用程序已經修復了這個問題。看來,this post有正確的解決方案和解釋。

在我的應用程序中導致失敗的消息是'mapViewDidFinishLoadingMap',它是MKMapViewDelegate的消息。嘗試在視圖dealloc方法之前將mapView委託設置爲'nil'。

+0

謝謝你的回答。你是對的。在發佈地圖之前,我沒有將代表設置爲零。我會試試這個,並通知你任何消息。 – AlexVogel 2010-11-03 09:30:07

+0

現在好了在實施解決方案後1個月,沒有新的錯誤報告可以說這是有效的。 – AlexVogel 2010-12-20 15:29:33

+0

謝謝你..你救了我.. :) – EmptyStack 2011-02-19 09:45:06

0

我也不得不在viewDidDisappear中將該委託設置爲零來解決該問題。

1

只要做到這一點就能解決問題100%

-(void) viewWillDisappear:(BOOL)animated 
{ 
    self.mapView.delegate = nil; 
    mapView=Nil; 
    NSLog(@"viewWillDisappear"); 

} 
+0

不要忘記打電話給'[超級viewWillDisappear:動畫]' – x2on 2014-08-08 09:06:27