Я пытаюсь получить доступ к местоположению пользователя, чтобы отображать данные о погоде. Я использую этот код:Я не могу получить данные о местоположении после разрешения
if(self.locationManager == nil) {
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
}
// Check for iOS 8. Without this guard the code will crash with "unknown selector" on iOS 7.
if ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
NSLog (@"ENTERING requestWhenInUseAuthorization",nil);
[self.locationManager requestAlwaysAuthorization];
}
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[self.locationManager startUpdatingLocation];
CLLocation *location = [self.locationManager location];
[self.locationManager stopUpdatingLocation];
NSString *latitude = [[NSNumber numberWithDouble:location.coordinate.latitude] stringValue];
NSString *longitude = [[NSNumber numberWithDouble:location.coordinate.longitude] stringValue];
Дело в том, что я получаю всплывающее окно с просьбой разрешить использовать текущее местоположение. Я принимаю, но я не получаю никакого места, его значение равно nil
. Когда я перехожу к настройкам, он говорит, что у меня есть разрешение на доступ к данным, но я не получаю его, если я не закрою приложение и не открою его снова. Есть ли способ получить местоположение на данный момент? Я что-то делаю неправильно?
Вы должны определить 'CLLocationManagerDelegate' и дождаться обновления местоположения (в методе' locationManager: didUpdateLocations: '). Этот метод будет называться несколько раз, каждый с большей точностью. ** Там ** вы хотите получить экземпляр 'CLLocation'. –