到目前为止,我有一个非常简单的应用程序基础,两个文本字段,用户在其中输入一个人的名字和姓氏,然后当他们点击保存按钮时,以下代码运行:
person = (Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:managedObjectContext];
NSError *err;
if (![managedObjectContext save:&err])
{
// Update to handle the error appropriately.
NSLog(@"Unresolved error %@, %@", err, [err userInfo]);
exit(-1); // Fail
}
所以我有一个Person
对象,我在用户输入文本字段时设置名字和姓氏,然后在选择保存时插入对象。但是,保存后,名字和姓氏显示为(null)
。我的所有出口和方法都已正确连接,所有代码都在运行以设置和保存名称/对象。
但是,如果我在主视图中执行此操作:
Person *p = (Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:managedObjectContext];
PersonDetailViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"PersonDetail"];
vc.managedObjectContext = fetchedResultsController.managedObjectContext;
vc.person = p;
然后保存我的对象,值不是(null)
. 我在决定保存后尝试插入新对象,而不是创建它然后在取消时删除它以获得更清晰和更合乎逻辑的代码。