我在相对简单的代码段中得到了讨厌的EXC_BAD_ACCESS。有谁知道为什么这段代码会崩溃吗?
stack:
_remove ()
-[MKQuadTrie remove:] ()
-[MKAnnotationContainerView removeAnnotation:] ()
-[MKMapView(UserPositioningInternal) removeUserLocation] ()
-[MKMapView(UserPositioning) stopUpdatingUserLocation] ()
-[MKMapView setShowsUserLocation:] ()
-[MapViewController stopTrackingLocation]
code:
- (void)stopTrackingLocation
{
if (mapView.showsUserLocation)
{
// Crashes here
mapView.showsUserLocation = NO;
}
}
最佳答案
我是新手,但我只是想提供帮助。
您的应用程序是否在刚启动应用程序时就失败了?
我认为它显示访问错误,因为获取位置信息需要花费时间,并且您要在GPS获取位置数据之前先进行访问。
因此,为防止这种情况,我将使用didupdatetolocation:方法。
将位置数据分配到“某物”中
因此,如果“某物”不为零,则仅mapview.showsuserlocation = NO;