从ViewControllres(核心数据)保存数据

时间:2011-09-01 23:13:10

标签: iphone ios

我浏览了一个核心数据教程,该教程将核心数据代码放在创建Window项目时创建的AppDelegate类中。我能够从预制的AppDelegate类成功保存和检索数据。

我的问题是,如果我有一个保存数据的ViewController,我该如何保存来自该特定类的数据。

  • 我是否需要在该类中重新定义持久性存储和managedObjectModel?
  • 如果是这样的话,那么编程的方式是什么(因为之前它是为我生成的),即我需要声明什么方法/ instancevariables / properties。

等待任何澄清可能有

2 个答案:

答案 0 :(得分:1)

无需通过应用程序委托或重新定义持久存储等。您只需要引用managedObjectContext。通常,这是一个属性(例如,视图控制器),您可以在创建后从外部进行设置,并从视图控制器类内部轻松访问(比通过应用程序委托更容易!)。您可以轻松地将其传递给其他视图控制器,并使用标准方法读取和写入核心数据。

如果要保存自己的对象,是的 - 您必须创建自己的托管对象模型(通过修改为您生成的模板)。

答案 1 :(得分:0)

为什么不在视图控制器中引用您希望保存数据的应用程序委托?然后,您可以像往常一样访问托管对象上下文并调用其save方法。

在视图控制器的.h文件中,有一个与应用程序委托相同类型的属性。然后在.m文件的viewDidLoad方法中设置引用,如下所示:

self.appDelegate = (MyApplicationDelegate*)[[UIApplication sharedApplication] delegate];

然后,当您想要保存时,您可以访问应用程序委托管理对象上下文,如下所示:

[self.appDelegate.managedObjectContext save:&error];

希望有所帮助,我写下了这一点,所以可能会有一些语法错误,但编译器会告诉你。

相关问题