2009-09-11 41 views

回答

1

(优于从不迟到)

当你有2个或更多的实体,那么你可以有一个关系。说例如,有2个实体:出版商。我们有它们之间一个非常简单的关系:

每本书都有一个出版商出版商可以出版许多书籍。

(在coredata中,关系不是像RDBMS中的实体,Infact关系是1实体的一部分,Coredata中A和B之间的关系意味着存储另一个实体的引用,所以当被管理对象从实体A创建,则关系将成为从实体A创建的任何对象的属性。)

在上面的示例中,书到发布者是一对一关系,而从发布者到书是一个-太多。这意味着书和出版商有双向关系无论它是1对1还是1对多,这种双向关系在coredata中设置为反向。这种关系称为反向关系。如果您将该书设置为与发布者相反,那么自动发布者将成为书籍的反面。

它不是技术上必要的,但强烈推荐由apple.If一个被改变另一个受到影响。这让我们做的是保持对象图更加可控和一致。大多数关系像这样是双向的。

来源:从谷歌Lynda.com

0

定义:

“中·节 invərs,invərs

形容词 1. 相对或在位置相反,指示,命令,或效果 “残疾与社会接触之间的良好反比关系”

名词 名词:inverse;复数名词:反义词 1. 与其他东西相反或相反的东西。 “他的做法是研究最多的倒数”,“

什么你是从苹果寻找:

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

”逆关系

大多数对象关系本身是双向的。如果一个部门与在一个部门工作的员工有多对多的关系,那么员工与该部门之间存在反向关系。主要的例外是提取的属性,它代表弱的单向关系 - 从目的地到源头之间没有任何关系。查看弱关系(获取属性)。

强烈建议您在两个方向建模关系,并适当指定相反的关系。核心数据使用此信息,以确保对象图的一致性,如果发生变化时(见操纵关系和对象图完整性)“

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

Does every Core Data Relationship have to have an Inverse?