2014-11-23 2 views
4

это мой locationManager метод инициализации:CLLocationManager.location равна нулю

func initLocationManager() { 
     seenError = false 
     locationFixAchieved = false 
     locationManager = CLLocationManager() 
     locationManager.delegate = self 
     locationManager.desiredAccuracy = kCLLocationAccuracyBest 
     locationManager.requestAlwaysAuthorization() 
     locationManager.startUpdatingLocation()  
} 

после вызова этого метода эта линия

println(self.locationManager.location) 

печатает ноль почему? это сработало для меня хорошо в прошлом, я просто сделал несколько изменений в своем приложении, и сейчас это плохо работает.

+0

Где печатать печатное издание? В методе делегата? Вы запретили размещение своего приложения в настройках конфиденциальности? – Paulw11

+0

К сожалению, я не нашел эти настройки конфиденциальности, о которых вы говорите, не могли бы вы уточнить? –

+0

Настройки приложения -> Privacy-> Location Services-> Ваше имя приложения – Paulw11

ответ

8

1) CLLocation location documentation - Значение этого свойства равно нулю, если данные местоположения не были получены ,

2) Вы назначили делегат для CLLocationManager. Почему бы не реализовать locationManager:didUpdateLocations: и распечатать последнее извлеченное местоположение изнутри?

3) Используете ли вы симулятор или настоящее устройство? Имейте в виду, что если вы используете тренажер вы, возможно, потребуется включить синтезированным местоположение:

Xcode location Dropdown

Вы также можете найти Custom Location вариант в: - Simulator -> Debug -> Location -> Custom Location...

2

Как ИО 8 requestAlwaysAuthorization игнорируется, если вы не указали строку для NSLocationAlwaysUsageDescription в вашем Info.plist.

Link to documentation

Смежные вопросы