我想从Swift 5的表视图中删除一行,并从数组中删除该对象。我进行了很多搜索,但无法完成。
我尝试了StackOverflow上所有可用的相关解决方案,但找不到它。
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
let position = indexPath.row
if (editingStyle == .delete) {
labDetailsTableView.beginUpdates()
if let idx = labs.firstIndex(where: { $0 === position }) {
labs.remove(at: idx)
}
labDetailsTableView.endUpdates()
}
}
二进制运算符'==='不能应用于类型为'LabDetails'和'Int'的操作数
答案 0 :(得分:1)
仅用if let
替换labs.remove(at: position)
块。不需要firstIndex
。
您也不需要呼叫beginUpdates
或endUpdates
。但是您确实需要向tableView.deleteRows(at: [indexPath], with: .fade)
添加呼叫。
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if (editingStyle == .delete) {
let position = indexPath.row
labs.remove(at: position)
tableView.deleteRows(at: [indexPath], with: .fade)
}
}