После NSBatchDeleteRequest удалённые сообщения остаются в списке чата
let fetch: NSFetchRequest<NSFetchRequestResult> = Message.fetchRequest()
fetch.predicate = NSPredicate(format: "createdAt < %@", monthAgo as NSDate)
let delete = NSBatchDeleteRequest(fetchRequest: fetch)
try context.execute(delete)
12 000 старых сообщений удаляются за полсекунды, в базе их больше нет. Но NSFetchedResultsController на экране продолжает показывать удалённые сообщения, а нажатие на одно из них иногда приводит к падению. Как исправить?
- Получить id удалённых и влить изменения в контексты
- Вызвать context.save() после execute
- Удалять через context.delete в цикле
- Выполнить запрос в viewContext, а не в фоне
