4

UICollectionViewCellオブジェクトが表示されていない場合、それらは再利用のためにキューに追加されます。メモリ警告が発生した場合、再利用可能なキュー内のセルに何が起こるか。キューはクリアされ、セルは破棄されるか、そのまま残されますか?メモリを受信して​​いるときにUICollectionViewのセルキューを更新するとどうなりますか?

+0

なぜ気になりますか?それが破壊された場合は、新しいものを作成する必要があるので、本当に気にしないでください。 – Lefteris

+0

@Lefterisは、大量のメモリを占有する重いコンテンツを持つ別のセルを持っていると言います。メモリ警告が表示された場合に何が起こるかを知っていると、利点が得られます。私がシステムに頼ることができるかどうかを知ることは良いことです。そうでなければ、そのメモリをクリアする必要があります。 –

+0

重い内容を自動解放プールに入れて – Lefteris

答えて

0

あなたの細胞にどのように強い参照を残しておけば、それらは除去されず、それらの細胞のトーンがあります。また、あなたのセルがデキューされていないことを覚えておかなければならず、セルへの強い参照があると、tableViewControllerも再初期化されません。

+0

私の場合は、セルへの強い参照を保持しません。私は、その実装が隠されているため、メモリ警告が発生した場合にキューに何が起こるかを一般的に知りたいだけです。 –

+0

ボディーはセルへの参照を保持しませんが、アプリケーションのメモリが不足してシステムがアプリケーションを終了させるまでスクロール速度が遅くなることがあります –

0

メモリ警告を受け取ると、表示されていないセルオブジェクトは、デキューマネージャが内部的にこのプロセスを処理すると同時にメモリから消去されます。

もっと知るには、メモリ管理の仕組みは?シミュレータでコードを実行します。

取得したアドレスを提供するセルオブジェクトを出力します。後でメモリ警告を生成するメニューでハードウェアオプションを選択します。

"row = 7 -> cell = <UICollectionViewCell: 0x7ff8b89096e0; frame = (2 1935; 371 265); clipsToBounds = YES; hidden = YES; opaque = NO; layer = <CALayer: 0x61800003da20>>" 

これは、アドレス管理の詳細についても理解するのに役立ちます。

関連する問題