当前设置: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。
谢谢古斯的帮助。