【发布时间】:2017-02-09 17:58:23
【问题描述】:
我曾在指定的索引路径上删除和重新加载行,但从未插入。这是我想要做的:
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 节中的行数。包含在第 2 节中的行数 更新后的现有节(44)必须等于 更新前该部分中包含的行 (22),加号或减号 从该部分插入或删除的行数(插入 1 行, 0 已删除)加上或减去移入或移出的行数 该部分(0 移入,0 移出)。
没有意义的是它告诉我只尝试插入 1 个项目,但实际上我正在插入 22 个。我的数据源已正确更新,为什么这不起作用?
【问题讨论】:
-
检查
newIndexPaths的内容 - 那里有 22 个不同的索引路径,还是一个索引路径 22 次?
标签: ios swift uitableview