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()
}
它現在的作品,但不應該原來的代碼也工作?
你從哪裏得到錯誤?發佈堆棧跟蹤和代碼。 –