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



当前设置: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。在创建另一个之前,我是否需要以某种方式关闭其中一个?任何建议都会很有帮助。谢谢

想明白了。

我保存了MOC,但没有将NSManagedDocument写入磁盘(我使用ManagedDocument作为核心数据数据库的容器)。

所以很自然,当我切换到MVC-2时,我不会有更新的数据。

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

谢谢古斯的帮助。

最新更新