Wie Cache von CLLocation entfernen?
-
24-09-2019 - |
Frage
Ich entwickle eine iPhone-App, die eine Lage bewusst App ist. Currentlly die App in Ordnung, außer dem Caching von vorheriger Position arbeiten. Das erste Mal, dass ich die Anwendung Standort-Manager starten holt den aktuellen Standort und dann zeige ich in der Nähe Dinge auf der Grundlage der aktuellen Position an.
Aber ab dem nächsten verwendet es zuvor geholten Lage und bis ich das Telefon neu starten wird es die gleiche Position holen. Also bis zu diesem Punkt bin ich klar, dass der Standort-Manager die Lage zwischenspeichert.
Also meine Frage ist, wie diese Cache zu entfernen und den Standort-Manager zwingen, einen neuen Standort zu holen Dank
Lösung
Eigentlich glaube ich nicht, können Sie: es ist an Ihnen (in Ihrer CLLocationManagerDelegate
Instanz) die Position Sie filtern erhalten auf der Grundlage ihrer Zeitstempel (um sicherzustellen, dass die Position, die Sie auf Arbeit ist jüngeren Datums, nicht eine im Cache gespeicherte ein ).
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ NSDate *eventDate = newLocation.timestamp; NSTimeInterval howRecent = [eventDate timeIntervalSinceNow]; //Is the event recent and accurate enough ? if (abs(howRecent) < SECS_OLD_MAX) { //WORK WITH IT ! } .... ....