2014-10-15 4 views
0

Я использую Xcode 6. У меня есть некоторые проблемы, когда я пытаюсь получить текущее местоположение пользователя с помощью CLLocationManager. Даже я добавил NSLocationWhenInUseUsageDescription и NSLocationAlwaysUsageDescription в файл Info.plist. А также используется [CLLocationManager requestWhenInUseAuthorization]. Тогда же я получаю консольный вывод, какIOS 8 Map сейчас работает

2014-10-15 11: 45: 15.004 MapIOS8 [1916: 57908] Попытка запуска обновлений местоположения MapKit без запроса авторизации местонахождения. Необходимо сначала вызвать [CLLocationManager requestWhenInUseAuthorization] или - [CLLocationManager requestAlwaysAuthorization].

Может ли кто-нибудь помочь мне решить эту проблему?

+0

так что все, что вам нужно, выбрать текущее местоположение пользователя? – Rumin

+1

Вы явно вызываете requestWhenInUse, чтобы опоздать ... Покажите свой код. – Woodstock

+0

Что я хочу, я хочу показать пользователю текущее местоположение на карте –

ответ

0

Вы пробовали написать код в этом заказе?

CLLocationManager *YourLocationManager = [[CLLocationManager alloc] init]; 
YourLocationManager.delegate = self; 
[YourLocationManager requestWhenInUseAuthorization]; 
[YourLocationManager startUpdatingLocation]; 

yourMapView.delegate = self; 
yourMapView.showsUserLocation = YES; 

Кроме того, чтобы получить координаты местоположения пользователя, возможно, придется реализовать этот MapKit метод делегата

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation 
{ 
    NSLog(@"%f, %f", userLocation.coordinate.latitude, userLocation.coordinate.longitude); 

    [mapView selectAnnotation:userLocation animated:YES]; 
} 
0

Если вы используете IOS Simulator попытаться сбросить настройки местоположения от Настройки-> Общие-> Конфиденциальность-> Сбросить местоположение & конфиденциальность. Затем позвоните:

[LocationManager requestAlwaysAuthorization]; 

При первом выполнении должно появиться всплывающее окно, позволяющее использовать текущее положение пользователя. После того, как вы разрешите использовать текущее местоположение, запустите свой LocationManager с помощью:

[LocationManager startUpdatingLocation]; 
Смежные вопросы