我在相对简单的代码段中得到了讨厌的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;

10-07 16:06