gpt4 book ai didi

ios - 当我想使用 tableview.deleteRows(at : , with: ) 时应用程序崩溃

转载 作者:行者123 更新时间:2023-11-30 12:54:44 25 4
gpt4 key购买 nike

我已经看到了很多关于这个主题的主题,但我仍然有错误......

这是我在 tableview 委托(delegate)方法中的代码(当用户滑动并单击单元格上的删除按钮时调用):

self.tableView.beginUpdates()

if self.data[sectionType]!.isEmpty {
self.data.removeValue(forKey: sectionType)
}

self.tableView.deleteRows(at: [indexPath], with: .fade)
self.tableView.endUpdates()

我已经实现了 numberOfSections 委托(delegate)方法,如下所示:

func numberOfSections(in tableView: UITableView) -> Int {
return data.count
}

这是我得到的错误:

*** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“UITableView 内部错误:无法生成旧部分计数:1 和新部分计数:0 的新部分映射”

如果我用reloadData()替换deleteRows(in tableView)方法,我会得到同样的错误...

我用断点检查,错误发生时我进入if条件。因此数据被更新(调用removeValue()后的0个元素)并且我调用deleteRows方法。

感谢您的帮助。

最佳答案

您要删除一行还是一个部分?

if self.data[sectionType]!.isEmpty {
self.data.removeValue(forKey: sectionType)
}

建议您尝试删除某个部分。如果是的话,后面应该跟这样的内容:

let indexSet = NSMutableIndexSet()
indexSet.addIndex(section)
self.tableView.deleteSections(indexSet, withRowAnimation: .fade)

如果您尝试删除一行,请将顶部更改为如下所示:

if self.data[sectionType]!.isEmpty {
self.data[sectionType].remove(at: rowToRemove)
}

关于ios - 当我想使用 tableview.deleteRows(at : , with: ) 时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40555244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com