В следующем коде удаляется основной объект данных, если пользователь не завершил модификацию новой записи (это происходит при операции вставки). Контроллер корневого представления создал объект и передал ссылку на мое представление. Он отлично работает, если пользователь нажимает кнопку «done» на моем представлении, но если вместо этого они перемещаются назад, используя кнопку «назад» на панели навигации, корневой вид, который он возвращает, просто зависает навсегда.Удаление объекта данных ядра перед появлением представления из UINavigationController
Я делаю что-то явно неправильно? Я рассматривал ожидание создания объекта до тех пор, пока пользователь не завершит просмотр, но в будущем это представление также будет обрабатывать редактирование существующих объектов, поэтому мой текущий метод передачи существующего объекта в это представление является предпочтительным.
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
// If the baby has no name, delete the Baby object that the root view
// already created. Otherwise save it.
NSManagedObjectContext *context = self.baby.managedObjectContext;
if ([self.babyNameField.text length] == 0)
[context deleteObject:baby];
// Save
NSError *error = nil;
if (![context save:&error]) {
// unresolved jmu - handle error
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
}
где вы размещаете 'ребенка'? Не могли бы вы отправить сообщение, которое отображается в консоли при его сбое? – FelixLam