swift ios8 cllocationmanager

CLLocationManager.authorizationStatus() siempre CLAuthorizationStatus.NotDetermined con la aplicación swift & objC



ios8 (3)

Al igual que sucede con mi aplicación objC, la que SÉ funciona bien bajo ios7, pensé que debería ser un error del sistema operativo y lo reporté: # 17128352

Solo puedo obtener mi CLLocationManager para autorizar. (swift under ios8) Incluso agrego una solicitud explícitaAlwaysAuthorization call (que no necesito con objC under ios7)

func finishLaunch() { //ask for authorization let status = CLLocationManager.authorizationStatus() if(status == CLAuthorizationStatus.NotDetermined) { self.locationManager.requestAlwaysAuthorization(); } else { self.startMonitoring() } ... }

la devolución de llamada nunca recibe nada excepto NotDermined y no se muestra UIAlertView al usuario.

func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) { if(status == CLAuthorizationStatus.NotDetermined) { println("Auth status unkown still!"); } self.startMonitoring() }

¿Lo estoy haciendo mal? - Me parece un error pero me gustaría un comentario


Lo único que tiene que hacer es agregar la Clave "NSLocationWhenInUseUsageDescription" a su aplicación info.plist luego hacer una solicitud de CLLocationManagerWhenInUseAuthorization y llamarla en viewDidLoad.


Tenga en cuenta que ahora las claves NSLocationAlwaysUsageDescription o NSLocationWhenInUseUsageDescription son obligatorias, por lo que debe incluirlas en su lista.