Swift-TableView断言错误:cellForRowAtIndexPath,原因是:canEditRowAt

问题描述

使用以下代码:

override func tableView(_ tableView: UITableView,canEditRowAt indexPath: IndexPath) -> Bool {
    switch viewControllerCanEdit {
    case .viewControllerThatCanNotEdit:
        return false
    default:
        tableView.cellForRow(at: indexPath)?.reuseIdentifier == "CellThatAllowsEditing" else { return false }
        return true
    }
}

我收到以下断言错误:

[Assert]试图在表视图上调用-cellForRowAtIndexPath: 它正在更新其可见单元的过程中 不允许。在以下位置建立符号断点 UITableViewAlertForCellForRowAtIndexPathAccessDuringUpdate来捕获 在调试器中查看此内容,并查看导致此情况发生的原因。也许你 正在尝试从表视图中向表视图询问单元格 关于特定行的回调?表格视图:; 层= ; contentOffset:{0,-100}; contentSize:{414,2765.3333333333335}; AdjustedContentInset:{100,0, 83,0}; dataSource:>

我缩小了范围。可能是此错误是由于tableView在更新数据的过程中调用canEditRowAt()导致的。因此,与tableView.cellForRow(at:)匹配的调用尚不存在。

我的问题是;如果tableView正在更新,是否有一种方法可以突破该功能?或者,如果有一种更好的尝试匹配的方法,是否可以根据单元格的类型来编辑该单元格?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)