1

ナビゲーション コントローラーのルート コントローラーとして UICollectionViewController を使用しています。したがって、この UICollectionViewController は、他のコントローラーに移動しても解放/再構築されません。コントローラーの「未公開」/NSFetchedResultController/UICollectionView/UICollectionViewLayoutの組み合わせでかなりのトラブルがありました。ここに私の状況があります -

  • コレクション ビューを使用して、データベース内のすべてのアイテムを一覧表示します。
  • アイテムが変更されてコレクション ビューが更新される必要があります。
  • 他のコントローラーはアイテムを更新/削除/挿入します。
  • アイテムを更新するバックエンド プロセスもあります。

NSFetchedResultController / UICollectionView の両方がデータの状態を維持し、データベースが (データのアップサートのために) 変化し続けるため、これらのデータの状態は時々同期されない可能性があります。それらを一貫させるために多くの時間を費やしました。ただし、すべてのデータはローカル db にあるため、ビューが消えたときにデータ/セルをクリーンアップし、再び表示されたときに再構築する方がはるかに良い方法のようです。

ビューが消えたときに UICollectionViewController をクリーンアップする方法を知っている人はいますか? 私の場合、NSFetchedResultController を解放したり、データベースをリッスンするイベントを削除したり、コレクション ビューにキャッシュされたデータを解放したりできます。ありがとう!

4

0 に答える 0