Je peux simplement obtenir l'autorisation de mon CLLocationManager. (Swift sous ios8) J'ajoute même un appel requestAlwaysAuthorization explicite (dont je n'ai pas besoin avec objC sous ios7)
func finishLaunch() {
//ask for authorization
let status = CLLocationManager.authorizationStatus()
if(status == CLAuthorizationStatus.NotDetermined) {
self.locationManager.requestAlwaysAuthorization();
}
else {
self.startMonitoring()
}
...
}
le rappel n'obtient jamais rien sauf NotDermined et il n'y a pas d'UIAlertView montré à l'utilisateur.
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if(status == CLAuthorizationStatus.NotDetermined) {
println("Auth status unkown still!");
}
self.startMonitoring()
}
Suis-je en train de mal faire? - Je me sens comme un bug mais j'aimerais avoir des commentaires
N'oubliez pas que les clés NSLocationAlwaysUsageDescription
ou NSLocationWhenInUseUsageDescription
sont désormais obligatoires, vous devez donc les inclure dans votre plist.
La seule chose que vous devez faire est d'ajouter la clé "NSLocationWhenInUseUsageDescription" à votre application info.plist puis de créer une méthode CLLocationManager requestWhenInUseAuthorization et de l'appeler dans viewDidLoad.
Comme cela arrive également avec mon application objC - celle que je SAIS fonctionne bien sous ios7 - j'ai pensé que cela devrait être un bogue du système d'exploitation et l'ai signalé: # 17128352