我遇到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模拟器并再次运行它时,我只获得编辑过程之前的数据。帮助
答案 0 :(得分:0)
delegate
很可能无法使托管对象上下文可用。而不是从delegate
获取它,每个托管对象都有一个指向它被添加到的托管对象上下文的链接,所以你可以这样做:
[self.editModel.managedObjectContext save:&error]