ios - iOS:删除 UItableviewCell 时出错:-[UITableView _endCellAnimationsWithContext:] 中的断言失败
问题描述
我正在实现一个 UITableView。我也在使用 CoreData。它工作正常,但是当我尝试删除一行时,我收到了这个错误:
-[UITableView _endCellAnimationsWithContext:] 中的断言失败
这是我的实现:
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete{
guard let appDelegate =
UIApplication.shared.delegate as? AppDelegate else {
return
}
let managedContext =
appDelegate.persistentContainer.viewContext
let fetchRequest =
NSFetchRequest<NSManagedObject>(entityName: "Developers")
do {
let test = try managedContext.fetch(fetchRequest)
let objectToDelete = test[indexPath.row]
managedContext.delete(objectToDelete)
do{
try managedContext.save()
}catch{
print(error)
}
}catch{
print(error)
}
self.tableView.beginUpdates()
tableView.deleteRows(at: [indexPath], with: .none)
self.tableView.endUpdates()
}
}
问题在这条线上tableView.deleteRows(at: [indexPath], with: .none)
但我还没弄清楚为什么。我发现的大多数示例都实现了相同的 3 行代码:
self.tableView.beginUpdates()
tableView.deleteRows(at: [indexPath], with: .none)
self.tableView.endUpdates()
你们中的任何人都知道我在做什么或解决此错误吗?
解决方案
1-你只需要deleteRows
摆脱beginUpdates
&endUpdates
tableView.deleteRows(at: [indexPath], with: .none)
2-您从 Coredata 中删除,而您应该从表的 dataSource 数组中删除
let test = try managedContext.fetch(fetchRequest)
let objectToDelete = test[indexPath.row]
managedContext.delete(objectToDelete)
喜欢
arr.remove(at:indexPath.row)
推荐阅读
- python - 有 dictionary.get 什么都不返回
- lua - 如何使用参数?
- google-cloud-platform - 谷歌云 gcloud 为服务帐户电子邮件启用 API 服务
- scroll - 在 PowerShell ISE 控制台上以编程方式向上滚动
- elasticsearch - Elasticsearch:通过查询响应删除的故障对象的形状/模型是什么?
- html5-canvas - 为 Spritefonts 提供 canvas2d 图像色调
- python - uvicorn 抑制了 gelf 驱动程序的 python 系统日志
- python - 使用语音识别python中的数字(整数)
- excel - Pivotcache 运行时错误:VBA 中的类型不匹配
- azure - 使用事件合成进行语音翻译执行 python 代码的问题