Swift 从共享数据源中删除元素时,CollectionView 使应用程序崩溃

Swift CollectionView crashes app when elements are removed from shared data source

我有一个以几种不同方式显示数据的应用程序,其中一种是集合视图。

CollectionView 显示位于另一个 ViewController 中的数组中的数据。另一个 ViewController 负责在数组中添加和删除元素。

删除元素并调用 reloadData() 后应用程序崩溃。在调用 reloadData() 之前,我尝试了各种方法来删除显示已删除数据的单元格,但我似乎无法使用任何东西。

我在控制台中看到的唯一内容是: *** 断言失败 -[UICollectionViewData validateLayoutInRect:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit/UIKit-3599.6/UICollectionViewData.m:433

任何相关信息将不胜感激

我最终找到了解决方案。我正在实现一个自定义 UICollectionViewLayout,其中我将每个单元格的属性存储在一个数组中。

问题是我最初的实现不是为处理动态数据源(初始化后 adding/removing 个元素)而设计的。

虽然删除了单元格,但布局属性仍然存在。

一旦我解决了这个问题,CollectionView 就会正确地动态添加和删除项目。