Ich arbeite an einer MKMapView-basierten iPhone/iPad-Mapping-App, die meine eigene Basiskarte überlagert, um einige eingeschränkte Funktionen bereitzustellen, selbst wenn Benutzer offline sind und den Google-Karten-Kachelserver nicht erreichen können.Wie kann ich MKMapViews Cache für Kartenkacheln löschen?
Diese Funktionalität funktioniert - aber ich habe es schwer, es nach jedem neuen Build zu testen, weil ich keine Möglichkeit finde, den iOS-Kartenkachel-Cache zu leeren/zurückzusetzen. Der iOS-Cache überlebt sogar einen Aus- und Wiedereinschalten des iOS-Geräts. Irgendwo, in den ich in der Vergangenheit gezoomt habe, rendert mit den Kacheln im Speicher von der vorherigen Testsitzung.
Gibt es eine Möglichkeit, iOS zu zwingen, seinen Kartencache zu leeren? Die einzige Alternative, die ich mir vorstellen kann, ist, das Betriebssystem jedes Mal neu zu flashen, wenn ich einen Test machen muss.
Danke!
BTW: Dies ist fast ein Duplikat von this question, aber in diesem Fall wurde das Problem nicht mit einem leeren Cache getestet, sondern Speicher freizugeben. Die angenommene Antwort konzentrierte sich auf das RAM-Problem, nicht das gleiche Problem, das ich hier habe.
Wissen Sie, dass der NSURLCache die MKMapView beeinflusst? Nach meinen Experimenten hat der Map Viewer seinen eigenen Cache-Speicher, aber ich könnte mich irren. – radven
Hallo @ Radven! Eigentlich war ich anfangs ziemlich skeptisch gegenüber MKMapView und NSURLCache, aber dann versuchte ich, NSURLCache zu untergliedern, um alle Verbindungen zu meiner App zu verfolgen, und ich sah die Aufrufe von MKMapView durch den Cache. Sie können sehen, wie ich es in diesem Thread implementiert http://stackoverflow.com/questions/5381687/ios-track-url-connections/5928185#5928185 –
Ich bin mit der Methode, die Sie auf der anderen Frage und ausführlich beschrieben nicht viel Glück. Während eines Schwenkens und Zoomens in einem Bereich der Karte, den ich noch nie zuvor gesehen hatte, erhielt ich nur einen Aufruf an die Funktion cachedResponseForRequest: Sie wurde als "http://www.google.com/glm/mmap" protokolliert. Ich hatte einen Anruf für jede Google-Kachel erwartet. Lag ich falsch? – Craig