UIWebView
あまりにも多くのメモリを使用している があります。問題の動作には、特定の領域をタップして色を変更し、PNG ファイルに基づいて新しい色のレイヤーを作成できる HTML/JavaScript ページが含まれますが、ユーザーがフィールドに触れるたびに (色を追加するか、色を変更するかに関係なく)既存の領域) メモリが増加します。タッチするたびにメモリが消費され、メモリが失われることはありません。このプロセスが無限に続くため、せいぜいメモリが失われ、最悪の場合アプリがクラッシュします。
VM: Webkit malloc
Activity Monitor と Instruments で遊んだ後、カテゴリ内のオブジェクトのビルドアップに絞り込みましたJavaScriptCore library
。これは理にかなっています。ページの機能は JavaScript であり、各 PNG レイヤーは約 4KB で、構築中のオブジェクトと同じサイズです。
だから今私の質問は、私はそれについて何をしますか?
私はちょっと初めてなUIWebView
ので、誰かが私のオプションに光を当てることができるかどうか疑問に思っていましたか? これらの不要なオブジェクトをすべて手動でクリアする方法はありますか (試してみ[[NSURLCache sharedURLcache] removeAllCachedResponses]
ましたが、何もしませんでした)、またはそれらが最初から形成されないようにする方法はありますか?
そしておそらく最も重要なことは、これは最終的にアプリ内の iOS ソリューションになるのか、それともページ上の JavaScript ソリューションになるのかということです。