Ответ 1
Имейте в виду, что клавиши NSLocationAlwaysUsageDescription
или NSLocationWhenInUseUsageDescription
теперь являются обязательными, поэтому вы должны включить это в свой plist.
Я просто могу получить свой CLLocationManager для авторизации. (быстро под ios8) Я даже добавляю явный запрос requestAlwaysAuthorization (который мне не нужен с objC под ios7)
func finishLaunch() {
//ask for authorization
let status = CLLocationManager.authorizationStatus()
if(status == CLAuthorizationStatus.NotDetermined) {
self.locationManager.requestAlwaysAuthorization();
}
else {
self.startMonitoring()
}
...
}
обратный вызов никогда не получает ничего, кроме NotDermined, и нет UIAlertView, показанного пользователю.
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if(status == CLAuthorizationStatus.NotDetermined) {
println("Auth status unkown still!");
}
self.startMonitoring()
}
Я делаю это неправильно? - Похоже на ошибку, но мне нужна некоторая обратная связь
Имейте в виду, что клавиши NSLocationAlwaysUsageDescription
или NSLocationWhenInUseUsageDescription
теперь являются обязательными, поэтому вы должны включить это в свой plist.
Единственное, что вам нужно сделать, это добавить ключ к "NSLocationWhenInUseUsageDescription" в ваше приложение info.plist, затем сделать запрос CLLocationManagerWhenInUseAuthorization и вызвать его в viewDidLoad.
Как и в случае с моим objC-приложением - тот, который я знаю, отлично работает под ios7 - я решил, что это ошибка ОС и сообщила об этом: # 17128352