我有一个 UICollectionViewController 作为导航控制器中的根控制器。所以当我移动到其他控制器时,这个 UICollectionViewController 不会被释放/重建。控制器 / NSFetchedResultController / UICollectionView / UICollectionViewLayout 的“从未发布”的组合我遇到了很多麻烦。这是我的情况-
- 我使用集合视图列出数据库中的所有项目;
- 集合视图应该随着我的项目的变化而更新;
- 其他控制器将更新/删除/插入项目;
- 还有一个后端过程来更新项目
由于 NSFetchedResultController / UICollectionView 都维护数据状态,并且数据库不断变化(因为更新插入数据),这些数据状态可能会不时同步。我花了很多时间使它们保持一致。但是,由于我的所有数据都在本地数据库中,因此在视图消失时清理数据/单元格并在再次出现时重建它似乎是更好的方法。
有谁知道当视图消失时如何清理 UICollectionViewController ?就我而言,我可能想释放 NSFetchedResultController / 删除监听数据库的事件 / 释放缓存在集合视图中的数据。谢谢!