想要从tableview中删除一行并从数组中删除相应的对象

时间:2019-06-16 16:15:25

标签: arrays swift uitableview

我想从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'的操作数

1 个答案:

答案 0 :(得分:1)

仅用if let替换labs.remove(at: position)块。不需要firstIndex

您也不需要呼叫beginUpdatesendUpdates。但是您确实需要向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)
    }
}