【发布时间】:2012-06-11 04:01:48
【问题描述】:
我正在尝试理解 CoreData 建模中的关系概念,并且很难理解什么实体可能是建立关系的良好感觉。有没有办法为可以对应另一个实体的关系生成唯一编号?所以假设我有一个新的实体条目,它将有一个唯一的关系信息编号 101,详细信息也将创建 101,因此可以以某种方式保持对应关系完好无损。不确定CoreData 模型是否已经解决了这个问题,以便有某种生成器来为两个实体生成唯一值。
谢谢
【问题讨论】:
-
我不确定您是否完全了解 Core Data 的工作原理。 Core Data 在 SQL 数据库上运行,并为您处理诸如唯一 ID 和键之类的低级事物,因此您不必担心它们。实体可以具有属性,这些属性基本上是原始值。关系有点像从一个实体到另一个实体的双向指针。如果您需要从另一个实体引用一个实体,则使用关系。如果需要存储布尔值,则使用属性。请澄清你的问题。你到底想做什么?
-
@PartiallyFinite,我正在尝试在两个实体之间创建关系,但是我希望它是一个唯一的数字/字符串。所以让我们说它是一个人和地址,我可以为他们两个都设置一个唯一的 id 可以用作关系吗?所以如果我想查询这个人,我也可以根据唯一的 id 来获取这个人的地址。谢谢。
-
你的想法太低了。 Core Data 不允许您访问对象的唯一标识符。相反,您使用 Xcode 中的 Editor 菜单为每个实体创建一个
NSManagedObject子类,并使用NSFetchedRequest获取所有符合您设置的条件的实体。当您以这种方式获取一个人时,您可以简单地使用person.address来获取分配给该人的地址。 -
我建议你按照这个教程开始:raywenderlich.com/934/…
-
@PartiallyFinite,我确实完成了那个教程,但是我不确定,细节和信息如何使反向关系成为真正的关系?只是在那部分感到困惑。我希望你能理解我在这里的担忧?我在这里尝试使用主流主键/外键概念。不确定图片背后的关系是否完全相同?谢谢。
标签: iphone objective-c ios ipad core-data