Вступить в клуб →
сложнаявопросХранение данных: Core Data, Keychain и UserDefaults

После 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, а не в фоне

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела