【发布时间】:2011-06-22 18:56:39
【问题描述】:
我有一个项目使用与另一个项目相同的 xcdatamodel 文件。事实上,它是完全相同的文件。我将它从一个项目复制到另一个项目。我还复制了目标文件并进行了一些修改,并将它们放入第二个项目现在引用的静态库中。这些 xcdatamodel 和目标文件在原始项目中工作得很好
在第二个项目中,保存对象时,不会保存对象之间的关系。当应用程序运行时,关系按预期存在,指针仍在内存中,但是当我退出应用程序,返回,然后获取对象时,我得到了正确数量的对象,但它们的所有属性都是 nil。属性也是相同上下文中的托管对象。据我查看 sqlite DB 可以看出,所有对象都在那里,它们只是不指向对方。
编辑: 我正在使用 Xcode 3.2.6
【问题讨论】:
-
你说所有的“属性都是零”并且“属性也是托管对象......”你是说“关系”而不是“属性”吗?有区别。
-
是的,在我发表这篇文章后,我意识到这一点。属性是指我返回的对象的成员变量。但实际上属性和关系都归零了。
-
如果属性为nil,怎么知道store中的对象和内存中的对象是一样的呢?您是否尝试过获取他们的托管对象 ID 并在应用下次启动时检查?
-
一点假设。我查看了 sqlite 文件,我可以看到对象确实在那里,它们似乎并没有指向对方。当我进行提取时,我得到了数组中正确数量的对象。我假设这些对象与我退出应用程序之前的对象相同。
标签: iphone sqlite core-data xcdatamodel