Предупреждение XCode при использовании MapKit и CoreLocation

Я пытаюсь использовать реализовать экземплярMKMapViewиспользоватьCoreLocation чтобы отслеживать местоположение пользователей, а затем увеличить, где они находятся.

Я только хочу отслеживать местоположение пользователя, когда я на переднем плане. Поскольку мое приложение предназначено для iOS8, у меня есть запись для ключаNSLocationWhenInUseUsageDescription.

Когда я запускаю приложение в первый раз, оно соответствующим образом спрашивает, может ли оно получить доступ к моему местоположению. После того, как я нажму «Разрешить», я получу следующее предупреждение от XCode:

Trying to start MapKit location updates without prompting for location authorization. Must call -[CLLocationManager requestWhenInUseAuthorization] or -[CLLocationManager requestAlwaysAuthorization] first.

... что немного сбивает с толку, как я на самом деле называюrequestWhenInUseAuthorization, как видно из моего кода ниже:

@property (strong, nonatomic) IBOutlet MKMapView *mapView;
@property(nonatomic, retain) CLLocationManager *locationManager;

@end

@implementation MapView

- (void)viewDidLoad {
    [super viewDidLoad];
    [self locationManager];
    [self updateLocation];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    self.locationManager = nil;
}

- (CLLocationManager *)locationManager {
    //We only want to get the location when the app is in the foreground
    [_locationManager requestWhenInUseAuthorization];
    if (!_locationManager) {
        _locationManager = [[CLLocationManager alloc] init];
        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    }
    return _locationManager;
}

- (void)updateLocation {
    _mapView.userTrackingMode = YES;
    [self.locationManager startUpdatingLocation];
}

Есть ли у кого-нибудь понимание, почему это предупреждение будет иметь место?

Ответы на вопрос(1)

Ваш ответ на вопрос