0
我试图在我的列表中实现批处理删除我的代码有点像这样。索引超出范围在tableView:canEditRowAt批量删除后在TableView
func deleteSelection() {
var deletedIndexPaths: [IndexPath] = []
for (index, item) in self.itemsArray.enumerated().reversed() {
if item.isSelected {
self.itemsArray.remove(at: index)
deletedIndexPaths.append(IndexPath(row: index, section: 0))
}
}
if !deletedIndexPaths.isEmpty {
self.tableView.deleteRows(at: deletedIndexPaths, with: .automatic)
}
}
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return self.itemsArray[indexPath.row].isEditable
}
我得到一个索引超出范围内实现代码如下:canEditRowAt 是否有一批以适当方式删除的tableView同时实施canEditRowAt
我目前的解决方法是删除行作为该项目被删除
func deleteSelection() {
self.tableView.beginUpdates()
for (index, item) in self.itemsArray.enumerated().reversed() {
if item.isSelected {
self.itemsArray.remove(at: index)
self.tableView.deleteRows(at: IndexPath(row: index, section: 0), with: .automatic)
}
}
self.tableView.endUpdates()
}
它现在的作品,但不应该原来的代码也工作?
你从哪里得到错误?发布堆栈跟踪和代码。 –