核心数据反比关系

时间:2009-09-11 07:27:48

标签: core-data

任何人都可以用苹果核心数据中的反比关系解释一个例子吗?

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

(迟到总比没有好)

如果您有2个或更多实体,那么您可以建立关系。例如,例如,有2个实体:预订发布商。我们之间的关系非常简单:

每本图书都有出版商出版商可能会出版多本图书。

(在coredata中,关系不是像RDBMS中那样的实体.Infact关系是1个实体的一部分。在coredata中A和B之间的关系意味着,A存储另一个实体的引用。因此,当创建托管对象时从实体A开始,关系将成为从实体A创建的任何对象的属性。)

在上面的例子中,book to publisher是一对一的关系,而pub-to-book是一对多的。这意味着图书和出版商有两种关系无论它是1对1还是1对多,这种双向关系在coredata中设置为反向。这种关系称为反向关系。如果您将图书设置为与发布商相反,则自动发布商将与图书相反。

这在技术上并不重要,但苹果强烈推荐。如果一个人改变,另一个人会受到影响。这让我们做的是保持对象图更加可控和一致。大多数关系都是双向的。

来源:Lynda.com

答案 2 :(得分:0)

Google的定义:

  在·节

“   invərs,invərs

     

形容词   1。   在位置,方向,顺序或效果上相反或相反。   “观察到残疾与社会交往之间的反比关系”

     

名词   名词:逆复数名词:反转   1。   与其他东西相反或相反的东西。   “他的方法与大多数研究相反”“

您正在寻找Apple:

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/TroubleshootingCoreData.html#//apple_ref/doc/uid/TP40001075-CH26-SW1

  

“核心数据使用反向关系来维护数据模型中的参照完整性。如果不存在反向关系且删除了对象,则需要手动清理该关系。”

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/HowManagedObjectsarerelated.html

  

“反向关系

     

大多数对象关系本质上是双向的。如果部门与在部门工作的员工之间存在多对多的关系,则员工与部门之间存在反向关系。主要的例外是fetched属性,它表示弱的单向关系 - 从目标到源没有任何关系。请参阅弱关系(提取属性)。

     

强烈建议您在两个方向上建模关系,并适当指定反向关系。如果进行了更改,Core Data会使用此信息来确保对象图的一致性(请参阅操作关系和对象图完整性)。

一个很好的例子就是这里的第二个答案,它应该被赞成:

Does every Core Data Relationship have to have an Inverse?

答案 3 :(得分:-3)

试试这个(“核心数据关系教程iphone”的第一个谷歌搜索结果):

http://www.raywenderlich.com/934/core-data-tutorial-getting-started