我浏览了一个核心数据教程,该教程将核心数据代码放在创建Window项目时创建的AppDelegate类中。我能够从预制的AppDelegate类成功保存和检索数据。
我的问题是,如果我有一个保存数据的ViewController,我该如何保存来自该特定类的数据。
等待任何澄清可能有
答案 0 :(得分:1)
无需通过应用程序委托或重新定义持久存储等。您只需要引用managedObjectContext
。通常,这是一个属性(例如,视图控制器),您可以在创建后从外部进行设置,并从视图控制器类内部轻松访问(比通过应用程序委托更容易!)。您可以轻松地将其传递给其他视图控制器,并使用标准方法读取和写入核心数据。
如果要保存自己的对象,是的 - 您必须创建自己的托管对象模型(通过修改为您生成的模板)。
答案 1 :(得分:0)
为什么不在视图控制器中引用您希望保存数据的应用程序委托?然后,您可以像往常一样访问托管对象上下文并调用其save方法。
在视图控制器的.h文件中,有一个与应用程序委托相同类型的属性。然后在.m文件的viewDidLoad方法中设置引用,如下所示:
self.appDelegate = (MyApplicationDelegate*)[[UIApplication sharedApplication] delegate];
然后,当您想要保存时,您可以访问应用程序委托管理对象上下文,如下所示:
[self.appDelegate.managedObjectContext save:&error];
希望有所帮助,我写下了这一点,所以可能会有一些语法错误,但编译器会告诉你。