核心数据与同一实体的多重关系

Dan*_*iel 6 entity core-data relationship ios

我现在一直在研究核心数据,现在我已经决定是时候在我正在做的新项目中使用它了.

从来没有在一个工作项目中使用它我只是遇到了一些我希望得到社区反馈的问题.

我正在做一个基于位置的应用程序,我想在我的核心数据模型中存储"郊游",所以对于每次旅行我都有一些传统信息,如日期,距离,描述等...但我还需要保存位置我需要在地图上绘制一些点的信息.

所以每次旅行都有一个"to"和"from"对象,我创建了一个具有纬度,经度和位置名称属性的MapPoint实体.在我的Trip实体中,我添加了一个"to"和一个"from"关系,其目的地是MapPoint.

但是我如何处理逆属性呢?

因为Xcode似乎给出了警告,所以我把它留作"No inverse".

我需要在MapPoint上创建2个关系,以引用返回到"to"的Trip和另一个引用Trip的"from"关系的关系.

它是否正确 ?我不太明白.

我有一个与用户实体类似的问题,其中在其他几个实体中使用它,我是否应该使用反向关系回到每个使用用户的实体?

为了让Xcode保持高兴,似乎我需要在用户上创建一个回到Trip的关系,然后回到我正在使用的其他实体,例如上传,图片实体等...我认为一个Trip有用户似乎令人不安对象,然后准备链接回上传/照片...这与旅行没有任何关系.

Cal*_*leb 7

如果要支持关系tofrom关系的反向关系,可以只为MapPoint实体添加适当的关系.给他们打电话tripTotripFrom,或任何似乎是适当的您,并设置这些为你的逆关系tofrom各自的关系.

正如文档所解释的那样,您不需要在两个方向上建立关系模型,但这样做会让生活更轻松.例如,当用户被删除时会发生什么?如果您有许多与User相关的其他实体,那么您需要一些方法来确定哪些对象与该用户相关,以便您可以更新它们.如果您有反向关系,Core Data可以使用您选择的删除规则(如nullify)自动更新任何相关对象.如果没有反向关系,您可以自行修复任何相关对象.