当前设置: MVC-1,onViewDidLoad,创建一个托管对象,从托管对象获取数据,并更新各种UI元素。
MVC-2:完全相同的设置。我将相同的代码从MVC-1复制并粘贴到MVC-2中。
我看到的问题是:在启动并打开MVC-1之后,所有的代码都会被执行,没有任何错误。创建了ManagedObject,ManageObjectContext上的fetch请求工作了,并且UI得到了正确更新。然而,当切换到MVC-2时,MVC-2应该获取的数据似乎都没有实际更新。MVC-2中的所有UI元素都具有上次启动应用程序时的相同数据。
此外,如果我启动应用程序并首先打开MVC-2,我会得到相同的结果,但这次似乎只有MVC-1没有更新。
我忽略了什么?我对数据库进行了显式保存。我正在(至少我认为我正在)创建两个不同的ManagedObjects。在创建另一个之前,我是否需要以某种方式关闭另一个?任何建议都会非常有帮助。谢谢。
发布于 2012-04-30 11:43:34
我想通了。
我正在保存MOC,但是我没有将NSManagedDocument写入磁盘(我使用ManagedDocument作为核心数据数据库的容器)。
因此,当我切换到MVC-2时,自然不会有更新的数据。
我现在保存MOC,将MD写入磁盘,并在viewWillDisappear上关闭MD。
谢谢你的帮助古西。
https://stackoverflow.com/questions/9930305
复制相似问题