我有UICollectionView
dataSource
由NSFetchedResultsController
支持。
内容更改发生后,单元格有时会隐藏。它们作为集合视图的子视图保留,但isHidden == true
。我的代码都没有显式隐藏单元格,isHidden
的属性观察者永远不会被触发。
提示:我们的代码确实有一个纾困案例,它可以修改cellForItem...
或willDisplayCell
答案 0 :(得分:0)
问题在于,我们有时会在返回单元格的回退版本之前尝试构造请求,失败和修改CoreData的单元格。
cellForItem
或willDisplayCell
正在主线程上运行,我们使用performWithBlockAndWait
来修改CoreData。
当集合视图仍在更新单元格时,这导致主线程上集合视图的dataSource
发生了更改。
简单的解决方法是使用performWithBlock
代替performWithBlockAndWait
。现在,集合视图有可能在更改数据模型之前完成自身更新。
更好的解决方法是在我们到达cellForItem
或willDisplayCell
时使这种失败成为可能。