2016-09-14 3 views
5

CLLocationManager.requestLocation() dauert ungefähr 10 Sekunden, um zu feuern didUpdateLocations Ereignis.CLLocationManager.requestLocation() dauert ungefähr 10 Sekunden

Hier sind die für die CLLocationManager gesetzt Attribute

let locationManager = CLLocationManager() 
locationManager.delegate = self 
locationManager.desiredAccuracy = kCLLocationAccuracyBest 
locationManager.distanceFilter = 10 
locationManager.requestWhenInUseAuthorization() 
locationManager.requestLocation() 

Gemäß der documentation dies kann einige Sekunden dauern.

Diese Methode kehrt sofort zurück. Beim Aufruf ruft der Standortmanager eine Standortkorrektur auf (was einige Sekunden dauern kann) und ruft die Methode locationManager (_: didUpdateLocations :) des Stellvertreters mit dem Ergebnis auf.

Aber kann dies 10 lange Sekunden dauern? Oder fehlt mir etwas?

Vielen Dank im Voraus

+0

(was einige Sekunden dauern kann). Stellen Sie sicher, dass Sie die Benutzeroberfläche von der Hauptwarteschlange aktualisieren –

+0

Es braucht Zeit, um eine genaue Position zu erhalten, wenn das GPS noch nicht eingelaufen ist. Wenn ein Standort nicht gefunden werden kann, kann es mehr als 10 Sekunden dauern. – Paulw11

+4

Danke für alle Kommentare. @SausageMachine Ich beschwere mich nicht, ich frage mich, wie Apps wie Google Maps den Standort für ungefähr 3 Sekunden erhalten, indem sie die gleiche Zugriffsposition verwenden. @All Genie down Wähler, ich frage das, weil ich nicht gesehen habe, dass eine App so viel Zeit braucht, um Ort zu bekommen. Bitte erleuchte mich. –

Antwort

0

Wenn Sie den Schalter aus

locationManager.requestLocation() 

für

locationManager.startUpdatingLocation() 

dann didUpdateLocations sofort Brennen beginnt. Dies sollte dein Problem lösen.

Verwandte Themen