私は、ユーザーがオフラインでGoogleのマップタイルサーバーにアクセスできない場合でも、限られた機能を提供するために、独自の基本マップをオーバーレイするMKMapViewベースのiPhone/iPadマッピングアプリケーションを開発中です。マップタイルのMKMapViewのキャッシュをクリアするにはどうすればよいですか?
この機能は動作していますが、iOSマップタイルキャッシュをフラッシュ/リセットする方法が見つからないため、新しいビルド後にテストするのが苦労しています。 iOSキャッシュは、iOSデバイスの電源を切って再起動しても有効です。以前のテストセッションでメモリ内のタイルをレンダリングしたことがある場所はどこにでもあります。
iOSにマップキャッシュを強制的にフラッシュする方法はありますか?今私が考えることができる唯一の選択肢は、テストを行う必要があるたびにOSをリフラッシュすることです。
ありがとうございます!
BTW:これはほぼthis questionと重複していますが、その場合は空のキャッシュでテストするのではなく、メモリを解放してください。ここで与えられた答えは、私がここにいるのと同じ問題ではなく、RAMの問題に焦点を当てました。
NSURLCacheがMKMapViewに影響することは知っていますか?私の実験では、マップビューアには別のキャッシュスペースがあるように見えましたが、間違っている可能性があります。 – radven
こんにちは@radven!実際には、最初は 'MKMapView'と' NSURLCache'については懐疑的でしたが、 'NSURLCache'をサブクラス化してすべての接続を追跡し、' MKMapView' Googleコールがキャッシュを通過するのを見ました。あなたは私がこのスレッドでどのように実装しているかを見ることができますhttp://stackoverflow.com/questions/5381687/ios-track-url-connections/5928185#5928185 –
私はあなたが他の質問で詳述した方法で動いています。多くの運がない。私が一度も見たことのない地図の領域を囲んでズームしている間に、私はcachedResponseForRequest:関数への呼び出しを1つしか得ず、 "http://www.google.com/glm/mmap"として記録されました。私はすべてのGoogleタイルの呼び出しを期待していました。私は間違っていた? – Craig