Недавно я столкнулся с поведением, которое в значительной степени гарантирует утечку объектов в довольно распространенной схеме использования CoreData:
- Сохранение фоновых контекстов в хранилище
- Имея viewContext автоматически объединяет изменения из хранилища
Когда viewContext объединяет изменения, он сохраняет удаленные объекты в своем свойстве deletedObjects
. Они очищаются только при сохранении viewContext.
Однако, насколько я понимаю, одна из целей этого шаблона состоит в том, чтобы viewContext был доступен только для чтения, чтобы легче рассуждать о происходящем и избегать конфликтов с фоном. контексты. Если нет другого способа справиться с этим, кажется, что любой шаблон, где объединяющийся контекст предназначен только для чтения, предназначен для утечки.
Был бы признателен за любые мысли.