应用程序崩溃时,我想用tableview.deleteRows(在:与:)
我已经看到了很多话题关于这个问题,但我仍然有错误...应用程序崩溃时,我想用tableview.deleteRows(在:与:)
这是我在的tableview委托方法代码
self.tableView.beginUpdates()
if self.data[sectionType]!.isEmpty {
self.data.removeValue(forKey: sectionType)
}
self.tableView.deleteRows(at: [indexPath], with: .fade)
self.tableView.endUpdates()
我已经实现了numberOfSections委托方法是这样的::(当用户刷卡并点击单元上的删除按钮被调用)
func numberOfSections(in tableView: UITableView) -> Int {
return data.count
}
这是错误我得到:
***终止应用程序由于未捕获的异常“NSInternalInconsistencyException”,理由是:“内部的UITableView错误:无法生成与老款数的新的部分地图:1,新区段计数:0
我得到同样的错误,如果我通过reloadData()替换deleteRows(在tableView中)方法...
我用断点检查,我在错误发生时输入if条件。所以数据被更新(removeValue()调用后的0个元素),我调用了deleteRows方法。
感谢您的帮助。
你想删除一行或一节吗?
if self.data[sectionType]!.isEmpty {
self.data.removeValue(forKey: sectionType)
}
建议您试图删除一节。如果你是它应遵循这一类的东西:
let indexSet = NSMutableIndexSet()
indexSet.addIndex(section)
self.tableView.deleteSections(indexSet, withRowAnimation: .fade)
如果你想删除一行,则顶部更改到这样的事情:
if self.data[sectionType]!.isEmpty {
self.data[sectionType].remove(at: rowToRemove)
}
你完全正确!我想删除一个部分。我没有使用正确的UITableView方法。 deleteSections()方法修复了我的问题:) 谢谢! –
看起来你可能删除部分中的所有行,而不是一个单元格。
我假设self.data
是一个字典,其中的键是节,值是包含单元格信息的数组。 而不是删除字典的关键。就像你在这里...
self.data.removeValue(forKey: sectionType)
你可能想要访问该部分并删除该行。事情是这样的......
data[sectionType]?.remove(at: indexPath.row)
我假设你有方法numberOfRowsInSection:
返回值是类似的东西...
return data[sectionType]?.count
希望这有助于以某种方式。
您是否使用了numberOfRowsInSection方法? –