Подтвердить что ты не робот

CLLocationManager.authorizationStatus() всегда CLAuthorizationStatus.NotDetermined с помощью приложения swift & objC

Я просто могу получить свой 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()
}

Я делаю это неправильно? - Похоже на ошибку, но мне нужна некоторая обратная связь

4b9b3361

Ответ 1

Имейте в виду, что клавиши NSLocationAlwaysUsageDescription или NSLocationWhenInUseUsageDescription теперь являются обязательными, поэтому вы должны включить это в свой plist.

Ответ 2

Единственное, что вам нужно сделать, это добавить ключ к "NSLocationWhenInUseUsageDescription" в ваше приложение info.plist, затем сделать запрос CLLocationManagerWhenInUseAuthorization и вызвать его в viewDidLoad.

Ответ 3

Как и в случае с моим objC-приложением - тот, который я знаю, отлично работает под ios7 - я решил, что это ошибка ОС и сообщила об этом: # 17128352