尝试从UITableView中删除行时有时崩溃

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试从UITableView中删除行时有时崩溃相关的知识,希望对你有一定的参考价值。

首先,如果我用一次滑动删除行,它工作正常。不幸的是,每当我只是玩它而不删除它就会崩溃。这就是我删除行的方式:

override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {


        if editingStyle == .delete {

            viewModel.deleteFromHistory(indexPath: indexPath, completion: {

                self.viewModel.history.remove(at: indexPath.item)
                self.tableView.deleteRows(at: [indexPath], with: .fade)

            })

        }

    }

崩溃消息:

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'索引路径没有出现(null)'

答案

错误包含一些提示,我认为:)在调用代码之前删除历史记录中的数据和表中的单元格必须确保indexpath不是nil。

尝试检查它,我希望它会有所帮助。

另一答案

您正在完成块中使用indexPath。因此,完成块中的indexPath和方法deleteFromHistory的参数可能不一样。

  • 添加异常调试并尝试检查indexPath的值。

以上是关于尝试从UITableView中删除行时有时崩溃的主要内容,如果未能解决你的问题,请参考以下文章

使用 CoreData 删除行时 UITableView 崩溃

UITableView 和 numberOfRowsInSection 崩溃

从 UITableView 插入和删除行时如何正确更新数据源?

尝试移动 UITableView 行时崩溃

从 UITableView 中删除最后一行 - 因 NSInternalInconsistencyError 而崩溃

为啥删除 UITableView 行时会出现错误?