如果用户最终没有修改新条目(这发生在插入操作中),下面的代码将删除一个核心数据对象。根视图控制器创建了实体并传递了对我的视图的引用。如果用户点击“我的视图”上的“完成”按钮,它可以正常工作,但是如果用户使用导航栏上的“后退”按钮向后导航,它返回的根视图将永远挂起。
我做错什么了吗?我已经考虑过在用户完成视图之前等待创建实体,但是在将来这个视图还将处理编辑现有实体的操作,因此我目前将现有实体传递给这个视图的方法是首选的。
- (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]);
}
}