Мое приложение поддерживает два NSManagedObjectContexts.Один запускается в главном потоке, другой обрабатывает сетевые события и запускается в фоновом потоке.
Всякий раз, когда получено сетевое событие:
- Основной MOC сохраняет
- Фоновый поток объединяет изменения
- Сетевое событие обрабатывается и изменения применяются к фону MOC
- Фон MOC сохраняет.
- Основной MOC объединяетизменения.
Это прекрасно работает, пока я не попытаюсь удалить NSManagedObject внутри основного потока:
a.prepareForDeletion снова вызывается в фоновом потоке после шага # 2
b.prepareForDeletion вызывается в главном потоке после шага # 5
Что хуже КАЖДЫЙ ВРЕМЯ, либо МОС сохраняет / объединяет мерзости a.и б.задняя их уродливая голова.
Насколько я могу судить, NSManagedObject воскрешается, затем удаляется, снова и снова.
Я вырываю волосы из-за этой проблемы.Я провел последнюю неделю, борясь, чтобы заставить работать несколько MOC.Я понятия не имел, что что-то такое простое вызовет столько горя.