好的,所以我试图从聊天应用中的tableView中删除对话,然后应用程序崩溃了。错误消息如下:
CoreData:错误:严重的应用程序错误。抓住了例外 在核心数据更改处理期间。这通常是一个bug NSManagedObjectContextObjectsDidChangeNotification的观察者。 无效更新:第0部分中的项目数无效 更新(0)后现有部分中包含的项必须是 等于该部分之前包含的项目数 更新(3),加上或减去插入或删除的项目数 该部分(0插入,1删除)和加号或减号的数量 移入或移出该部分的物品(0移入,0移出)。 with userInfo(null)
从错误消息中,数字" 3"实际上是我的对话中的消息数量。换句话说,在这个特定的对话中,总共有3条消息。我的对话和消息之间的结构和关系如下:
我的代码到目前为止我的chatLogViewController:
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let deleteAction = UITableViewRowAction(style: .destructive, title: "Delete") { (action, indexPath) in
let selectedConversation = self.activeConversations[indexPath.row]
let context = CoreDataManager.shared.persistentContainer.viewContext
context.delete(selectedConversation)
do {
try context.save()
self.activeConversations.remove(at: indexPath.row)
self.tableView.deleteRows(at: [indexPath], with: .fade)
} catch let error {
print(error.localizedDescription)
}
}
return [deleteAction]
}
我不太明白为什么我收到此错误消息。令人沮丧的是,这个错误不会一直弹出。它偶尔发生,但经常发生。
有人能提供建议吗?