EXC_BAD_ACCESS в [MKMapView setShowsUserLocation] - PullRequest
3 голосов
/ 24 августа 2011

Я получаю неприятный 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;
    } 
}

Ответы [ 2 ]

0 голосов
/ 05 сентября 2011

Эта ошибка используется для получения доступа к несуществующему объекту.Вы уверены, что mapView не был освобожден из памяти до - stopTrackingLocation вызова?

0 голосов
/ 05 сентября 2011

Я новичок, но я просто пытаюсь помочь.Ваше приложение перестало работать в тот момент, когда вы только запускаете свое приложение?Я думаю, что это показывает плохой доступ, потому что получение вашего местоположения занимает время, и вы получите доступ к нему, прежде чем ваш GPS получит данные о местоположении.Поэтому, чтобы предотвратить это, я буду использовать метод didupdatetolocation :.Присвойте данные местоположения как «что-то»

, так что если «что-то» не равно nil, то только mapview.showsuserlocation = NO;

...