2010-04-18 12 views
5

Ich habe versucht, eine Möglichkeit zu finden, die Leistung meiner standortbasierten iPhone-Anwendung zu optimieren. Einige Leute haben erwähnt, dass Sie Standortaktualisierungen erzwingen können, indem Sie Ihren CLLocationManager starten und stoppen. Ich brauche die beste Genauigkeit, die ich bekommen kann, und der Benutzer in meinem Fall würde wahrscheinlich alle paar Sekunden (etwa 10 Sekunden) Updates sehen, wenn sie herumlaufen. Ich habe die Filter entsprechend eingestellt, aber ich merke, dass ich manchmal auf dem Gerät keine Updates bekomme.Erzwingen CLLocationManager Updates - hilft es oder tut es weh?

Ich teste den folgenden Ansatz, der ein Update erzwingt, wenn ein festes Zeitintervall verstreicht (ich verwende 20 Sekunden). Mein Bauchgefühl sagt mir, dass es mir wirklich nicht helfen wird, genauere Updates für den Benutzer bereitzustellen, und es ist wahrscheinlich der beste Ansatz, CLLocationManager einfach laufen zu lassen.

Meine Frage ist - erzwingt die Erzwingung Updates von CLLocationManager tatsächlich Core Location Performance? Tut es der Leistung weh? Wenn ich draußen in einem offenen Feld mit gutem GPS-Empfang bin, wird das dann helfen? Hat jemand Erfahrung damit?

Vielen Dank im Voraus, Steve

+0

Wenn Sie Ihren CLLocationManager einrichten, sollten Sie Ihr Kriterium 'savedAccuracy' auf' kCLLocationAccuracyBestForNavigation 'setzen, das in iOS 4+ verfügbar ist. Lassen Sie dann das Betriebssystem optimieren. – Nate

Antwort

0

Ich bin auch eine ‚in der Nähe von mir‘ -Funktion in einer App zu optimieren versuchen - ich fand die folgenden SO veröffentlichen Informationen nützlich: link text

0

Die Chancen stehen gut, wenn Sie Wenn Sie den gewünschten Genauigkeits- und Entfernungsfilter richtig eingestellt haben, erhalten Sie keine Updates, da Ihr Benutzer oder Test sich nicht genug bewegt hat, um ein Update auszulösen. Wie der Kommentar von @Nate sagte, hast du bessere Chancen, mehr Updates zu erhalten, wenn du es auf best oder bestForNav setzt.

Der wirkliche Grund für das Herunterfahren Ihres Standortmanagers ist wirklich, Batterie zu konservieren. Die meisten Benutzer, die das Gerät für GPS und Nav verwenden, wissen, dass es angeschlossen bleibt. Wenn Sie keinen Standort für so etwas verwenden, ist es besser, Ihren Standort zu finden und ihn zu schließen, um den Akku zu sparen, bis Sie ein anderes Standort-Update benötigen . Dies kann über Timer oder Blöcke erfolgen. Die Hauptsache ist, darüber nachzudenken, wie Sie so viel Akku wie möglich betreiben und speichern können.

Verwandte Themen