【问题标题】:Core Data Not Saving Relationships Between Objects核心数据不保存对象之间的关系
【发布时间】:2011-06-22 18:56:39
【问题描述】:

我有一个项目使用与另一个项目相同的 xcdatamodel 文件。事实上,它是完全相同的文件。我将它从一个项目复制到另一个项目。我还复制了目标文件并进行了一些修改,并将它们放入第二个项目现在引用的静态库中。这些 xcdatamodel 和目标文件在原始项目中工作得很好

在第二个项目中,保存对象时,不会保存对象之间的关系。当应用程序运行时,关系按预期存在,指针仍在内存中,但是当我退出应用程序,返回,然后获取对象时,我得到了正确数量的对象,但它们的所有属性都是 nil。属性也是相同上下文中的托管对象。据我查看 sqlite DB 可以看出,所有对象都在那里,它们只是不指向对方。

编辑: 我正在使用 Xcode 3.2.6

【问题讨论】:

  • 你说所有的“属性都是零”并且“属性也是托管对象......”你是说“关系”而不是“属性”吗?有区别。
  • 是的,在我发表这篇文章后,我意识到这一点。属性是指我返回的对象的成员变量。但实际上属性和关系都归零了。
  • 如果属性为nil,怎么知道store中的对象和内存中的对象是一样的呢?您是否尝试过获取他们的托管对象 ID 并在应用下次启动时检查?
  • 一点假设。我查看了 sqlite 文件,我可以看到对象确实在那里,它们似乎并没有指向对方。当我进行提取时,我得到了数组中正确数量的对象。我假设这些对象与我退出应用程序之前的对象相同。

标签: iphone sqlite core-data xcdatamodel


【解决方案1】:

我假设您在 Xcode 4 中完成所有这些操作。

根据我的经验,我发现使用 Core Data 非常有问题。虽然我不确定它是否能解决您的问题,但您可能希望使用 Xcode 3 来管理它。如果你没有,这里是torrent。我在使用 Xcode 4 时遇到了问题,所以我使用 Xcode 3 来设置我的 Core Data 东西,然后一旦设置好,我就使用 Xcode 4 来处理其他一切。

【讨论】:

  • 实际上我使用的是 Xcode 3.2.6 ... 尝试了 4,但它妨碍了我的工作,所以我切换回来了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 2011-09-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多