我曾在指定的索引路径上删除和重新加载行,但从不插入。这是我想要做的:
func reloadTableView(newIndexPaths: [IndexPath]) {
print(dataSource.numberOfItems()) // prints 44
print(newIndexPaths.count) // prints 22
tableView.beginUpdates()
tableView.insertRows(at: newIndexPaths, with: .none)
tableView.endUpdates() // Crashes before this line
}
这是我收到的崩溃:
由于未捕获的异常而终止应用 ' NSInternalInconsistencyException',原因:'无效更新:无效 第2节中的行数。包含在中的行数 更新后的现有部分(44)必须等于数量 更新前的该部分中包含的行(22),加号或减号 从该部分插入或删除的行数(插入1个, 删除0)加上或减去移入或移出的行数 该部分(0移入,0移出)。
没有意义的是,它告诉我只有一个项目正在尝试插入,但事实上我实际上是在插入22.我的数据源已正确更新,所以为什么这不起作用?
答案 0 :(得分:0)
@ Paulw11对!这正是问题所在,我无法相信我没有抓住这一点。当我创建indexPaths时,在我循环创建过程时,我过早地忘记增加行值。谢谢!