Ответ Ортвина не сработал для меня.MKUserLocationView никогда не находится в этом массиве (по крайней мере, в моем тестировании).
Вместо этого получите значение из экземпляра MKMapView напрямую.Вот так:
if (self.userLocationAnnotationView != nil && self.mapView.userLocation != nil) {
self.userLocationAnnotationView = [self.mapView viewForAnnotation:self.mapView.userLocation];
}
"userLocationAnnotationView" - это ивар, который есть в моем контроллере вида:
MKAnnotationView *userLocationAnnotationView;
@property (nonatomic, retain) MKAnnotationView *userLocationAnnotationView;
Когда вы запускаете этот код, текущее представление местоположения должно быть уже добавлено.Это не может иметь место в viewDidLoad по ряду причин, включая: a) пока нет обновлений GPS b) текущее местоположение находится за пределами экрана.Я запускаю этот код в:
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
Удачи!