无法删除索引路径中的行

Not able to delete row at an indexpath

我有一些 tableview 单元格,上面有一些数据,单元格上有一个十字按钮(在右上角),单击它应该删除单元格。这就是我尝试删除的方式...

extension sellTableViewController: imageDelegate {
    func delete(cell: sellTableViewCell) {
        if let indexPath = tableview?.indexPath(for: cell) {
            //1.Delete photo from datasource
            arrProduct?.remove(at: indexPath.row)
            print(self.appDelegate.commonArrForselectedItems)

            tableview.deleteRows(at: [indexPath], with: .fade)

        }
    }
}

但是当我点击十字按钮时,我收到一条错误消息,显示 The number of sections contained in the table view after the update (1) must be equal to the number of sections contained in the table view before the update (2), plus or minus the number of sections inserted or deleted (0 inserted, 0 deleted).'

我的表格视图 numberOfSectionsnumberOfRowsInSection 给出如下...

    func numberOfSections(in tableView: UITableView) -> Int {
        return (arrProduct?.count)!

    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        let product = arrProduct![section]

        return product.images.count
    }

希望有人能帮忙...

您正在从 indexPath.row 处的数组中删除项目,但您的数组包含部分而不是行

一行错误替换

        arrProduct?.remove(at: indexPath.row)

        arrProduct?.remove(at: indexPath.section)

希望对您有所帮助

编辑

我认为你正在从数组中删除图像

arrProduct![indexPath.section].images.remove(at: indexPath.row)

您的代码混淆了部分和行。您是说部分的数量基于产品数量 (arrProduct?.count),行数基于该部分产品中的图像数量 (arrProduct![section].images.count)。

但是在你的 delete 函数中,你删除了一个产品 (arrProduct?.remove(at: indexPath.row)),它对应于一个部分,但你又删除了 table 上的一行。

确保您在处理产品(部分)和图像(行)时思路清晰。