【发布时间】:2009-09-11 07:27:47
【问题描述】:
Apple 的 Core Data 框架中的逆向关系示例是什么?
【问题讨论】:
标签: core-data
Apple 的 Core Data 框架中的逆向关系示例是什么?
【问题讨论】:
标签: core-data
【讨论】:
(迟到总比没有好)
当您有 2 个或更多实体时,您可以建立关系。以 例如 为例,有 2 个实体:Book 和 Publisher。我们之间有一个非常简单的关系:
每本书都有一个出版商,一个出版商可以出版很多书。
(在 coredata 中,关系不是 RDBMS 中的实体。事实上,关系是 1 个实体的一部分。coredata 中 A 和 B 之间的关系意味着,A 存储另一个实体的引用。因此,当创建托管对象时来自实体 A,则关系将成为从实体 A 创建的任何对象的属性。)
在上面的示例中,图书与出版商之间是一对一的关系,而出版商与图书之间是一对多的关系。这意味着书籍和出版商有两种关系无论是一对一还是一对多,这种双向关系在coredata中设置为反向。这种关系称为反向关系.如果您将书籍设置为与出版商相反,那么出版商将自动成为书籍的反转。
这在技术上不是必需的,但苹果强烈推荐。如果一个被改变,另一个会受到影响。这让我们做的是让对象图更加可控和一致。大多数关系都是这样的双向关系。
来源:Lynda.com
【讨论】:
来自谷歌的定义:
"in·逆 ˈinvərs,inˈvərs
形容词 1. 在位置、方向、顺序或效果上相反或相反。 “残障与社会交往之间的明显反比关系”
名词 名词:逆;复数名词:倒数 1. 与其他事物相反或相反的事物。 “他的方法与大多数研究相反””
您对 Apple 的要求:
“Core Data 使用反向关系来维护数据模型内的引用完整性。如果不存在反向关系并且删除了对象,则需要手动清理该关系。”
"逆向关系
大多数对象关系本质上是双向的。如果一个部门与在该部门工作的员工之间存在一对多关系,则从员工到部门之间存在一对一的反向关系。主要的例外是获取的属性,它表示弱的单向关系——从目标到源没有关系。请参阅弱关系(获取的属性)。
强烈建议您对两个方向的关系进行建模,并适当地指定反向关系。如果进行更改,Core Data 使用此信息来确保对象图的一致性(请参阅操作关系和对象图完整性)。”
一个很好的例子是这里的第二个答案,它应该被赞成:
【讨论】:
试试这个(“核心数据关系教程iphone”的第一个谷歌结果):
http://www.raywenderlich.com/934/core-data-tutorial-getting-started
【讨论】: