Mam kontroler widoku, który implementuje CLLocationManagerDelegate
. Utworzyć zmienną CLLocationManager:Swift LocationManager didChangeAuthorizationStatus Zawsze nazywany
let locationManager = CLLocationManager()
Następnie w viewDidLoad
, ustawić właściwości:
// Set location manager properties
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters
locationManager.distanceFilter = 50
Problem zaczyna się, że funkcja jest wywoływana zanim jeszcze sprawdzić stan autoryzacji.
func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if (status == .AuthorizedWhenInUse) {
// User has granted autorization to location, get location
locationManager.startUpdatingLocation()
}
}
Czy ktoś może poinformować mnie, co może być przyczyną tego?
Dziękuję bardzo. Nie zdawałem sobie sprawy, że zostanie wywołany po inicjalizacji. –
Dzięki za odpowiedź. Dokumentacja jabłka musi być aktualizowana tymi informacjami. –
Wydaje się, że masz rację, że 'didChangeAuthorizationStatus' wywołał krótko po zainicjowaniu' CLLocationManager', ale gdzie jest to udokumentowane? – bobics