使用一个数据库处理两个MVC之间的托管对象

时间:2012-03-29 17:22:29

标签: ios core-data object managed

当前设置: MVC-1,onViewDidLoad,创建一个托管对象,从托管对象中提取数据并更新各种UI元素。

MVC-2:完全相同的设置。我将相同的代码从MVC-1复制并粘贴到MVC-2中。

我看到的问题: 启动并打开MVC-1后,所有代码都会执行而不会出现任何错误。创建ManagedObject,对ManageObjectContext工作的获取请求和UI进行了适当更新。但是,当切换到MVC-2时,似乎没有任何数据,MVC-2被假设要提取,实际上正在更新。 MVC-2中的所有UI元素都具有上次启动应用程序时的相同数据。

此外,如果我首先启动应用程序并打开MVC-2,我会得到相同的结果,这次只有MVC-1似乎没有更新。

我在看什么?我有明确的保存到正在建立的数据库。我(至少我认为我)正在创建两个不同的ManagedObjects。在创建另一个之前我是否需要以某种方式关闭一个?任何建议都会非常有帮助。感谢。

1 个答案:

答案 0 :(得分:0)

想出来。

我正在保存MOC,但是我没有将NSManagedDocument写入磁盘(我使用ManagedDocument作为Core Data数据库的容器)。

很自然地,当我切换到MVC-2时,我没有更新的数据。

我现在保存MOC,将MD写入磁盘并在viewWillDisappear关闭MD。

感谢帮助gusy。