Hier bekommen das Szenario ist, ich habe.auf App starten Standort in iOS
Bei App Start zum ersten Mal brauche ich den Benutzer Standort, um eine Liste der Orte zu holen, die ihnen am nächsten sind.
Wenn sie den Zugriff auf den Standort zulassen, möchte ich ihren Standort verwenden, um ihnen die Liste der Orte anzuzeigen.
Ich mache einen Anruf, um die Liste in didUpdateLocation zu aktualisieren, aber die Liste ist immer leer, auch nach dem ersten Zugriff. Wenn ich die App das zweite Mal öffne, ist der Standort verfügbar und ich habe die Koordinaten und kann damit fortfahren, die Liste zu zeigen, die funktioniert.
Ich habe auch versucht, den Code ausgeführt wird die Liste in Thesen 2 Delegatmethoden aufzufüllen:
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus){
// switch statements then
fectchPlacesAndPopulateList()
}
func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
print("locationManager")
Utils.creatErrorMessage(title: "aaa", message: "aaaa", vc: self)
let userLocation:CLLocation = locations[0] as! CLLocation
let lng = userLocation.coordinate.longitude;
let lat = userLocation.coordinate.latitude;
let coordinates = "\(lat),\(lng)"
print("update locations = \(coordinates)")
fectchPlacesAndPopulateList()
}
var locationManager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters
locationManager.startUpdatingLocation()
}
}
Wird 'didUpdateLocations' aufgerufen? – NobodyNada
@NobodyNada, nein, es heißt nicht – raklos
Ich nehme an, dass es an einem bestimmten Punkt aufgerufen wird, aber nicht nach dem Tippen auf zulassen. Ich muss die Liste plumpulieren, sobald ich den Standort habe – raklos