Ho un controller di visualizzazione che implementa lo CLLocationManagerDelegate
. Creo una variabile CLLocationManager:Swift LocationManager didChangeAuthorizationStatus Sempre chiamato
let locationManager = CLLocationManager()
Poi nel viewDidLoad
, ho impostato le proprietà:
// Set location manager properties
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.distanceFilter = 50
Il problema arriva che la funzione viene chiamata anche prima di controllare lo stato di autorizzazione.
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if (status == .AuthorizedWhenInUse) {
// User has granted autorization to location, get location
locationManager.startUpdatingLocation()
}
}
Qualcuno può informarmi che cosa potrebbe causare questo a verificarsi?
La ringrazio molto. Non ho realizzato che venga chiamato dopo l'inizializzazione. –
Grazie per la risposta. La documentazione Apple deve essere aggiornata con queste informazioni. –
Sembra che tu abbia ragione che 'doneChangeAuthorizationStatus' ha chiamato poco dopo che' CLLocationManager' è stato inizializzato, ma dove è documentato? – bobics