UICollection 崩溃无效更新:无效的部分数。

Posted

技术标签:

【中文标题】UICollection 崩溃无效更新:无效的部分数。【英文标题】:UICollection crash Invalid update: invalid number of sections. 【发布时间】:2018-04-01 12:08:58 【问题描述】:

更新后集合视图中包含的节数 (1) 必须等于更新前集合视图中包含的节数 (1),加上或减去插入或删除的节数 (1已插入,已删除 0 个)。

【问题讨论】:

显示一些 UICollectionView 委托方法的代码。您退回了多少件商品? 发生这种情况是因为您调用了tableView.insertSections(...)tableView.reloadData() 而没有更新func numberOfSections(...) 返回号码 【参考方案1】:

您的numberOfSections 是否基于某种模型?发生的情况是您在某处的表格视图中插入一个部分,重新​​加载您的表格视图数据,然后应用程序崩溃,因为numberOfSections 不等于The number of sections contained in the collection view after the update

如果没有看到您的代码,很难确定问题出在哪里,但我会查看您在哪里插入部分并找出如何相应地更新您的 numberOfSections

一个基本的例子是有一个像

这样的存储变量

var sectionsCount = 1

当你插入一个部分时,你可以做sectionsCount = sectionsCount + 1,重新加载你的tableView数据,然后:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return sectionsCount.count
    

请记住,在重新加载数据之前,您始终必须更新您的模型,以确保您的表格视图基于该模型。

【讨论】:

以上是关于UICollection 崩溃无效更新:无效的部分数。的主要内容,如果未能解决你的问题,请参考以下文章

应用程序崩溃:由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:第 0 节中的行数无效

在 iOS 13 中,tableView 中 UIDatePicker 的无效更新在旋转时崩溃

tableView.reloadRows(at:[indexPath],带有:.none)会像这样崩溃吗?

删除部分中的最后一个单元格后,iOS 应用程序崩溃

NSInternalInconsistencyException',原因:'无效更新:第 1 部分中的项目数无效 - 虽然有多个部分

跨部分重新排序行时更新无效