複数のUIWebViewを多用するiOSアプリケーションを開発しています。すべてのリクエストは、アプリケーションバンドル内のローカルhtmlファイルからロードされます。ここで、割り当て解除時にメモリリークを防止するためのすばらしいヒントを見つけました:http://www.codercowboy.com/code-uiwebview-memory-leak-prevention
私が探しているのは、3つのUIWebViewインスタンスのプールを保持するFactoryクラスを作成することです。UIWebViewが要求されるたびに、このプールからインスタンスを要求する必要があります。したがって、必要に応じてWebViewの割り当てを解除する可能性があるメモリ警告が発生しない限り、WebViewの割り当てを解除することはありません。
これは私がこれまで考えてきたことであり、私の提案に対する追加のヒントやコメントを探しています。
- プールがいっぱいになると、WebViewを再利用する必要があります。先入れ先出しタイプのスタックになります。
- Webビューの再利用が要求されると、HTML実装で定義されたdestroyメソッドを実行して、グローバル変数を無効にします。これは、UIWebViewのstringByEvaluatingJavascriptFromStringを使用して実行できます。
- それが完了すると、WebViewはdocument.innerHTML="";を実行します。ドキュメントをクリアします。
- 再利用されたUIWebViewは、新しいリクエストをロードします。
- 複数の画像を使用すると、大量のメモリを使用する可能性があると聞きました。プール内のUIWebViewが画面に表示されていないときに、すべてのタグソースを小さな画像に置き換えることは有益でしょうか?
ここでの入力に感謝します!
ありがとう、ファーガル。