我需要MKMapView崩溃的帮助

时间:2010-11-01 09:03:12

标签: iphone google-maps mkmapview

我的实时应用程序中最常见的崩溃之一是MKMapView崩溃。它在内部方法-[MKMapView mapTileViewDidFinishLoading:]崩溃。在我的测试期间,我无法追溯崩溃,但在iTunes Connect的崩溃报告中非常频繁。今天有任何关于此次崩溃的经历吗?它只是一个非常简单的地图,只显示一个注释。

以下是此次崩溃的完整堆栈跟踪:

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 

3 个答案:

答案 0 :(得分:11)

我想我可能已在我自己的应用程序中解决了这个问题。 this post似乎有正确的解决方案和解释。

导致我的应用程序失败的消息是'mapViewDidFinishLoadingMap',它是MKMapViewDelegate的消息。尝试在view dealloc方法之前将mapView委托设置为'nil'。

答案 1 :(得分:2)

这样做就可以解决问题100%

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

}

答案 2 :(得分:0)

我还必须在viewDidDisappear中将委托设置为nil来解决问题。