无法在Indexpath处删除行



我有一些桌面电视单元格,其中有一些数据,并且单元格上的单元上有一个十字按钮(右上方),该单击该单元的单击应删除该单元。这就是我试图删除的方式...

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).'

我的tableview 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)),但随后删除了表上的一行。

请确保您在使用产品(部分)和图像(行)时清楚。

相关内容

  • 没有找到相关文章