私はSkobbler Map Framework(SKMaps)を使ってiOSアプリを持っています。私はそれが多くのメモリを使用することがわかった。私がmapViewを追加したUIViewController
は既にmapViewなしでは重いですが、SKMapsフレームワークバージョン2.5.1では正常に動作していました。私はライトマップを使用していました。SKMaps、iOSからメモリ警告を受け取ったときに地図データのメモリ内キャッシュをクリアするには?
現在、3.0のライトマップは使用できなくなり、フルマップを使用する必要があります。現在、かなりのユーザーがナビゲート中にクラッシュを報告しています(10分後、時には3時間後など)。 (多くの)分析が判明した後、これらはメモリに関連しています(私のアプリはJetsamEventのログで理由「vnode-limit」で表示されます)。
私は自分のアプリケーション要素とデータ構造からすべてを取り除いていますが、SKMapsフレームワークはアプリの総メモリ使用量の85%に似ています。私もdidReceiveMemoryWarning
を実装して、自分の要素にできることを追加しました。私は楽器とXcode 8メモリグラフを使って多くのメモリ解析を行いました。リークは見つかりませんでした。
私の推測では、それはフルマップと2.5.1のライトマップに関連していると思います。
メモリ警告を受け取ったときにSKMapsのメモリ内キャッシュを消去(または削減)する方法はありますか?
こんにちはエイドリアン。 SKTilesCacheManagerは、DISK(メモリにキャッシュされていないタイルではない)のキャッシュのサイズを管理します。 didReceiveMemoryWarningのSKMapsService.sharedInstance()。tilesCacheManager.deleteAllCache()を実行しても、アプリケーションの現在のメモリフットプリントには何の影響もありません(これをテストしました)。 SKTilesCacheManagerのすべてのプロパティとメソッドが、メモリキャッシュではなくDISKキャッシュに適用されます(どこにでも明示的には記載されていませんが)。あるいは私は誤解していますか? – guido