У меня есть приложение для навигации с 3 контроллерами представления в стеке. Корень навигации толкает AvailableItemsViewController, передавая ему контекст управляемого объекта.
Это представление, представляющее собой табличное представление, которое использует выбранный контроллер результатов для его заполнения, имеет кнопку добавления, которая подталкивает другой контроллер (CreateNewItemViewController), я передаю ему этот контекст.
В CreateNewItemViewController я создаю управляемый объект, сохраняю его в контексте, а затем открываю контроллер представления.
Я могу перемещаться вперед и назад, сохраняя элементы в AvailableItemsViewController, пока не вернусь в корень навигации. (ДоступныйItemsViewController освобождается).
После этого, если я вернусь к третьему контроллеру и попытаюсь сохранить, я получу следующее:
Вот моя ошибка (зомби включены :)
- [AvailableItemsViewController controllerWillChangeContent:]: сообщение отправлено освобожденному экземпляру 0x1f6500
и без зомби
- [__ NSArrayM controllerWillChangeContent:]: нераспознанный селектор отправлен в экземпляр 0x4ecdee0
(я получил много разных случайных результатов по этому поводу, кажется, что адресат сообщения controllerWillChangeContent: случайный)
все контроллеры устанавливают свои свойства равными нулю и освобождают ivars в viewDidUnload и dealloc соответственно.
При пошаговом прохождении сбой происходит в [self.managedObjectContext save: & error] в третьем контроллере (CreateNewItemViewController)