核心数据不存在

时间:2013-07-23 21:42:33

标签: ios core-data nsmanagedobjectcontext

我遇到Core Data问题。我有一个表视图viewcontroller1,它是从我的Core Data模型中填充了数据的数组中填充的。选择单元格后,它会执行推送到viewcontroller2,您可以在其中查看已保存的数据。从那里开始,我有一个名为“编辑”的按钮,当选中该按钮时,模态会转到viewcontroller3,您可以在其中编辑该数据。这是我保存编辑数据的代码。

//editModel

[self.editModel setValue:self.editNameTextField.text forKey:@"name"];
[self.editModel setValue:self.editTextView.text forKey:@"text"];
[self.editModel setValue:[NSDate date] forKey:@"date"];

NSError *error;
if (![[self.delegate managedObjectContext] save:&error])
{
    NSLog(@"Can't save the edit: %@", [error localizedDescription]);
}

if (self.delegate)
    [self.delegate dismissEdit:self];
else
    NSLog(@"There is no delegate");

但是,每当我尝试调用它时,我都会得到一个NSLog:Can't save the edit: (null)

viewcontroller2反映了这种变化;和viewcontroller1中的表格视图一样。但是,当我退出iOS模拟器并再次运行它时,我只获得编辑过程之前的数据。帮助

1 个答案:

答案 0 :(得分:0)

delegate很可能无法使托管对象上下文可用。而不是从delegate获取它,每个托管对象都有一个指向它被添加到的托管对象上下文的链接,所以你可以这样做:

[self.editModel.managedObjectContext save:&error]