BLOGakisuteが主に技術的なネタを書き溜めるブログです。http://code.google.com/p/route-me/wiki/CacheConfigurationキャッシュにはメモリに対するキャッシュ、ファイルを利用したキャッシュ、sqliteを利用したキャッシュの3通りがある。デフォルトではメモリに32枚、sqliteに無制限に地図画像をキャッシュするようになっている。参考はhttp://ameblo.jp/xcc/entry-10171488747.htmlroute-meを使っているうちに、困った事態に遭遇しました。最初の頃に使っていたOpenStreetMapの地図画像が、いつまでたってもVirtualEarthの地図画像に入れ替わらないんです。ごらんの通りOpenStreetMapの地図が出ます。tileSourceはVirtualEarthになっているのに!iPhoneシミュレータをリセットしたりアプリケーションを削除したりしましたが効果なしです。そこで原因を調査したところ、route-meは内部的にsqliteを用いた画像データのキャッシュを持っており、このキャッシュが自動的に最新のデータと入れ替わらないのが原因であることがわかりました。(通常キャッシュはある程度保持期間が決まっていて、保持期間を過ぎたデータは破棄するようになっていると思うのですが、route-meについては少なくとも1日2日程度の期間ではキャッシュを破棄してくれないようです)(というかsqliteのデータベースってアプリケーションごとに/var/root/Library/アプリケーション名/以下に配置されているからアプリケーションを削除したら消えるんじゃないんですか・・・?それとも全部ゴミになって残るの?単にiPhoneシミュレータが悪い?)そこでキャッシュを破棄する方法を調べるがてら、route-meの地図画像キャッシュを設定する方法について調べてみました。http://code.google.com/p/route-me/wiki/CacheConfiguration公式のドキュメントをみると、"routeme.plist"というplistファイルを作成してビルドターゲットに加えることで、地図画像キャッシュの動作を変更することができるらしいです。することで、sqliteを用いたキャッシュの中に保存されるデータ量を制限することができます。データベースの構造をみても、キャッシュ古くなったデータを自動的に削除するような機能はないようです。そのため、毎日決まった箇所の地図データを見るようなアプリの場合は、何年たっても地図の画像データが更新されません。このように地図の画像データが更新されない恐れがある場合には、sqliteを用いたキャッシュを利用しないように設定するのがよいと思います。これで今後のキャッシュの利用方法は設定することができましたので、いますでにキャッシュされてしまっているデータを削除しましょう。route-meではZCACHEというテーブルの中に地図画像キャッシュデータを保存していますので、このテーブルのデータを削除すればよいです。sqliteにはTRUNCATEが無いので、DELETE文を使ってすべてのデータを削除します。ZCACHE参考:http://www.mail-archive.com/sqlite-users@sqlite.org/msg09144.htmlまた、iPhoneシミュレータ上でキャッシュを消したい場合には、以下のパスにsqliteのデータベースファイルが存在しますので、そちらを丸ごと削除すればより簡単です。Simulator/User/Applications/英字の長ったらしい識別子/Documents/*.sqlite)さぁ削除していざチャレンジ!・・・あの、変わってないんですけど。何で?どうして?ログをコンソールから調べてみましたが、routeme.plistが正しく読み込まれていて、間違いなくDBへのアクセスは発生していません。なると怪しいのは地図提供元URLへのアクセスです。ここで何らかの仕組みが働いてキャッシュされているのではないかと思って調査してみました。すると、RMWebTileImageクラスの中にこんなソースを発見。cachedResponseForRequest:request];怪しいです。次回はちょっと脇道にそれて、このNSURLCacheについて調査してみようと思います。Androidアプリエンジニアやってます。原因を調べるのにずいぶんと苦戦したので備忘録を作ります。調べたのですが、これよりよくまとまっているドキュメントを現状発見できませんでしたので、2019/06/08現在では上記のドキュメントを参照するのがベストだと思います。操作が優れているか否か」を評価点に挙げます。今回の記事は久しぶりの誰得記事です。こちらで紹介されている手法を用いるにはプライベートAPIを操作する必要があるため、おそらく審査に通りません。じこせきにんでお願いします。プロパティを使うことで簡単にアニメーションを実装させることができます。サンプルを書いてみます。Accessから秘密鍵を書き出すときに、「エラーが発生しました。項目を読み込めません。Accessのお世話になることが多いです。複数台のMacで開発を行っている場合は、証明書を認証するための秘密鍵を複数台のMacにインストールする必要があります。今年は2019年となりました。12月7日担当のakisuteです。最近フォント周りについて深く掘り下げる機会がありましたので、その際のメモを残しておこうと思います。地点では存在しないタイトルの通りですが一応補足しておきます。