iOS 6上使用MapKit崩溃

时间:2012-10-31 20:36:20

标签: iphone ios ipad ios6 mapkit

我自己无法重现此特定的崩溃,但已经通过我们的崩溃报告工具进行了报告,我们的数百名用户正在体验这种崩溃。发现很难调试或重现。

它发生在所有硬件平台上,但仅限于iOS 6.任何帮助或见解都将受到高度赞赏。

异常类型:SIGSEGVCode:SEGV_ACCERR

Fatal Exception
Thread 0 Crashed
0    MapKit      _remove(objc_object*, MKQuadTrieNode*) + 13
1    MapKit  -[MKQuadTrie remove:] + 54
2    MapKit  -[MKAnnotationContainerView observeValueForKeyPath:ofObject:change:context:] + 252
3    Foundation  NSKeyValueNotifyObserver + 272
4    Foundation  NSKeyValueWillChange + 572
5    Foundation  -[NSObject(NSKeyValueObserverNotification) willChangeValueForKey:] + 180
6    Foundation  NSKVOForwardInvocation + 130
7    CoreFoundation  ___forwarding___ + 626
8    CoreFoundation  _CF_forwarding_prep_0 + 24
9    MapKit  -[MKUserLocation _updateCoordinate] + 106
10   MapKit  -[MKUserLocation setLocation:] + 106
11   MapKit  -[MKMapView(UserPositioningInternal) locationManagerUpdatedLocation:] + 994
12   CoreFoundation  -[NSArray makeObjectsPerformSelector:withObject:] + 206
13   MapKit  -[MKLocationManager _reportLocationStatus:] + 66
14   MapKit  -[MKLocationManager locationProvider:didUpdateLocation:] + 1540
15   MapKit  -[MKCoreLocationProvider locationManager:didUpdateLocations:] + 864
16   CoreLocation    -[CLLocationManager onClientEventLocation:] + 1614
17   CoreLocation    __CLClientInvokeCallback_block_invoke_0 + 64
18   CoreFoundation  __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
19   CoreFoundation  __CFRunLoopDoBlocks + 160
20   CoreFoundation  __CFRunLoopRun + 1450
21   CoreFoundation  CFRunLoopRunSpecific + 356
22   CoreFoundation  CFRunLoopRunInMode + 104
23   GraphicsServices    GSEventRunModal + 74
24   UIKit   UIApplicationMain + 1120
25   App Name   main.m line 14 main + 14

1 个答案:

答案 0 :(得分:1)

尝试在您正在使用它的类的dealloc方法中将locationManager的委托方法设置为nil

这样的事情:

-(void) dealloc
{
    self.locationManager.delegate = nil;
}

可能发生的是该对象被释放(可能是由于内存不足),并且位置管理器正在尝试向非现有代理发送消息。