在controllerDidChangeContent之后隐藏的UICollectionView单元格

时间:2016-12-20 00:31:08

标签: ios core-data uicollectionview nsfetchedresultscontroller

我有UICollectionView dataSourceNSFetchedResultsController支持。

内容更改发生后,单元格有时会隐藏。它们作为集合视图的子视图保留,但isHidden == true。我的代码都没有显式隐藏单元格,isHidden的属性观察者永远不会被触发。

提示:我们的代码确实有一个纾困案例,它可以修改cellForItem...willDisplayCell

中的核心数据

1 个答案:

答案 0 :(得分:0)

问题在于,我们有时会在返回单元格的回退版本之前尝试构造请求,失败和修改CoreData的单元格。

cellForItemwillDisplayCell正在主线程上运行,我们使用performWithBlockAndWait来修改CoreData。

当集合视图仍在更新单元格时,这导致主线程上集合视图的dataSource发生了更改。

简单的解决方法是使用performWithBlock代替performWithBlockAndWait。现在,集合视图有可能在更改数据模型之前完成自身更新。

更好的解决方法是在我们到达cellForItemwillDisplayCell时使这种失败成为可能。