CLLocationManagerに認証させることができます。 (ios8の下での迅速な)私は明示的なrequestAlwaysAuthorization呼び出しさえ追加します(ios7の下のobjCでは必要ありません)
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に追加し、CLLocationManager requestWhenInUseAuthorizationメソッドを作成して、viewDidLoadで呼び出すことだけです。
私のobjCアプリでも発生するので(ios7で問題なく動作するものです)、OSのバグであると考えて報告しました:#17128352