2016-07-26 12 views
0

Ich habe eine Frage bezüglich CoreLocation in Swift. Ich führe gerade eine App aus, die den Standort eines Benutzers jede Sekunde mit CoreLocation abruft. Das ist großartig und alles, aber es braucht eine Menge Speicher und Batterie, um laufen zu können (besonders, da meine Benutzer die App den ganzen Tag benutzen wollen). Ich frage mich, ob es eine Möglichkeit gibt, die Standortdaten aus den vergangenen (x) Sekunden zu ziehen, um sie wie eine Art Karte darzustellen und die Informationen rückwirkend zu verarbeiten.Core Location - Rückwirkend Informationen in Swift

Zum Beispiel: Wenn es war 3 Sekunden seit dem letzten Aktualisierung ... Auf Refresh Knopf-

var lastLocations = [(<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps/course -1.00) @ 7/26/16, 3:11:20 PM Mountain Daylight Time),(<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps/course -1.00) @ 7/26/16, 3:11:20 PM Mountain Daylight Time),(<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps/course -1.00) @ 7/26/16, 3:11:20 PM Mountain Daylight Time)] 

Weiß jemand, ob es möglich ist Informationen rückwirkend von Corelocation zu ziehen?

Antwort

0

Core Location gibt Ihnen keine Geschichte. Wenn Sie historische Informationen haben möchten, müssen Sie diese selbst sammeln und pflegen.

Ihre Speicherprobleme könnten behoben werden, indem Sie die Daten in einer Datei speichern (möglicherweise Core Data, vielleicht etwas anderes), so dass Sie nicht alles im Speicher behalten müssen. Das Problem hängt davon ab, was genau Ihre App macht. Core-Location-Updates einmal pro Sekunde über lange Zeiträume zu erhalten, ist ehrlich gesagt eine wirklich gute Möglichkeit, den Akku schnell runterzulaufen. Um genaue Ortsinformationen zu erhalten, ist Strom erforderlich. Je öfter Sie den Standort ermitteln, desto mehr Strom verbrauchen Sie.

Wenn Sie tatsächlich häufig Updates benötigen, sind Sie damit festgefahren. Sie können jedoch auf Kosten von weniger häufigen Standortaktualisierungen viel geringere Energieanforderungen erzielen, indem Sie andere Methoden verwenden, z. B. die Option "Signifikante" Standortaktualisierung in Core Location.