2016-10-28 29 views
0

Nehmen wir an, Sie möchten Ihr MapView auf den aktuellen Standort konzentrieren und dann einen Code in didUpdateLocation schreiben, der die aktuellen Standortkoordinaten verarbeitet. Wenn Sie requestLocation oder startUpdatingLocaion auf Ihrem Objekt CLLocationManager nicht aufrufen, wird die Methode nie aufgerufen. Ist das korrekt?Wann wird didUpdateLocation aufgerufen?

Aber ob Sie rufen requestLocation oder startUpdatingLocation wenn Sie auf Ihrem MapView den blauen Punkt sehen, die Ihre Position bewegt zeigt (zum Beispiel Sie simulieren Bewegung), aber didUpdateLocation wird nicht automatisch aufgerufen.

Ich versuche zu verstehen, warum sie eine Delegiertenmethode gemacht haben, wenn Sie es irgendwie selbst nennen müssen.

Antwort

1

Sie müssen die startUpdatingLocation ONCE aufrufen, und die didUpdateLocation-Delegate-Methode wird jedes Mal aufgerufen, wenn sich die Position ändert. Das ist ganz anders als das, was du sagst.

+0

Ja, vielleicht war ich nicht klar genug. Aber was ich sagen wollte ist, dass didUpdateLocations immer einen Start zu ihr angerufen hat. In der Kartenansicht können Sie jedoch sehen, wie sich der blaue Punkt bewegt (z. B. wenn Sie Bewegungen simulieren), aber didUpdateLocations wird nicht aufgerufen. Ich werde meine Frage aktualisieren. – Codey

+1

Nun, es ist irgendwie seltsam, dass der blaue Punkt sich bewegt, aber es kann erwartet werden, dass der Punkt aktualisiert wird, aber der Delegat wird nicht aufgerufen, da Sie ihn nicht abonniert haben meine Meinung. Sie müssen den Start anrufen, um Updates zu erhalten. – Daniel

+0

https://developer.apple.com/reference/corelocation/cllocationmanagerdelegate – Daniel

Verwandte Themen