UITableView插入行无效更新

时间:2017-02-09 17:58:24

标签: ios swift uitableview

我曾在指定的索引路径上删除和重新加载行,但从不插入。这是我想要做的:

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.我的数据源已正确更新,所以为什么这不起作用?

1 个答案:

答案 0 :(得分:0)

@ Paulw11对!这正是问题所在,我无法相信我没有抓住这一点。当我创建indexPaths时,在我循环创建过程时,我过早地忘记增加行值。谢谢!