私は、ユーザーページが前進または後退するたびに少なくとも2つのサブビューを持つUIViewを作成しているiPadアプリ(IOS 4.3 & 5.0)を持っています。 2つのサブビューはUIWebViewオブジェクトです。UIWebViewメモリリーク
すべてのスワイプで古いUIWebViewが削除され、適切に割り当て解除されます(removeFromSuperview、stopLoading、delegateをnilに設定)。親UIViewの割り当てが解除されます。親UIViewと2つの子UIWebViewsの両方が絶対になくなったことを確認できます。
ウェブビューの保持回数が削除されているのを見ることができます。毎回実際に削除されていると確信しています。 しかし、スワイプごとに私のメモリ割り当ては~200-350k増加し続けます。楽器には漏れはありませんが、メモリ使用量がゆっくりと上がっています。 iPad 1では、最終的に(中程度の使用から6〜10分以内に)アプリは複数のメモリ警告を受け取り、終了します。 LowMemoryクラッシュログなどが生成されます。
私たちは、stringByEvaluatingJavaScriptFromStringとloadRequestを使用してWebviewを作成します。 webViewsに何も注入されていない場合でも、メモリ使用量は急上昇します。
誰かがこのようなUIWebViewsの動作を経験していますか?誰もこれをうまく処理しましたか?
でも、&の回答は高く評価されますが、
スーパービューから削除して、読み込みを停止し、デリゲートをnilに設定していますが、これらのウェブビューに余分な保持はありませんか?おそらく、あなたは '@property(nonatomic、retain)'を考慮していないでしょうか? – Tim
こんにちは、あなたはこれを戦うすべての運を持っていましたか? –
循環参照。私の意見の1つはまだコントローラに掛かっていました。かなり古典的なメモリのもののすべての後に、しかし、大規模なコードベースで対処するのは難しいです。 – smaura777