Хорошо, я пытаюсь удалить беседу из таблицы в моем приложении чата, и приложение вылетает. Сообщение об ошибке выглядит следующим образом:
CoreData: ошибка: серьезная ошибка приложения. Исключение было поймано
во время обработки изменений основных данных. Обычно это ошибка в
наблюдатель NSManagedObjectContextObjectsDidChangeNotification.
Неверное обновление: недопустимое количество элементов в разделе 0. Количество
элементы, содержащиеся в существующем разделе после обновления (0) должны быть
равным количеству элементов, содержащихся в этом разделе до
обновление (3), плюс или минус количество элементов, вставленных или удаленных из
этот раздел (0 вставлено, 1 удалено) и плюс или минус количество
элементы перемещены в или из этого раздела (0 перемещены, 0 перемещены).
с 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]
}
Я не совсем понимаю, почему я получаю это сообщение об ошибке. Разочарование в том, что эта ошибка не появляется постоянно. Это случается иногда, но достаточно часто.
Кто-нибудь может дать совет?