Ios 这种关系应该是相反的吗

Ios 这种关系应该是相反的吗,ios,objective-c,core-data,relationship,inverse,Ios,Objective C,Core Data,Relationship,Inverse,对于我正在开发的基于回合的多人游戏,我定义了一个游戏实体来存储游戏信息。每个游戏是两个注册用户之间的玩家。因为我已经有了一个用户实体,所以我决定使用关系将用户链接到游戏。我定义了一个player1和一个player2关系,从Game到User实体,因为我想明确地将每个用户分配给两个玩家槽中的一个(而不是一个玩家属于一组的多个玩家的关系)。我还有一个从用户实体到游戏实体的关系游戏,用于存储用户当前参与的所有游戏 我不能以这种方式设置反向关系,因为这样我的游戏关系必须是player1或player2

对于我正在开发的基于回合的多人游戏,我定义了一个游戏实体来存储游戏信息。每个游戏是两个注册用户之间的玩家。因为我已经有了一个用户实体,所以我决定使用关系将用户链接到游戏。我定义了一个player1和一个player2关系,从GameUser实体,因为我想明确地将每个用户分配给两个玩家槽中的一个(而不是一个玩家属于一组的多个玩家的关系)。我还有一个从用户实体到游戏实体的关系游戏,用于存储用户当前参与的所有游戏

我不能以这种方式设置反向关系,因为这样我的游戏关系必须是player1player2的反向关系。但是Xcode抱怨缺少反向,所以我想知道是否应该用另一种方式来建模我的关系?以下是Xcode警告:

一致性错误:User.games没有反转;这是一个高级设置(对于特定关系,任何对象都不能位于多个目标中)

配置错误的属性:Game.player1应该有一个反向


您可以通过定义两个反向关系来解决这个问题:
games1
作为
player1
的反向,而
games2
作为
player2
的反向

通常建议定义反向关系,因为它有助于保持完整性 对象图的属性。例如,如果用户被删除,而反向关系被删除 规则设置为“无效”,则所有相关游戏中的
player1
/
player2
条目设置为空
并且不指向不存在的用户对象。

我仍然需要一个“游戏”关系,因为我想检索一个玩家参与的所有游戏,而不仅仅是他占据player1位置的游戏。我猜对象图仍然会不一致?@Bart:你可以定义另一个关系“games”(即用户的所有游戏)。在这种情况下,你实际上会留下一个没有反向的,忽略警告或者,您可以在谓词为“player1=%@或player2=%@的游戏上通过简单的获取请求获取用户的所有游戏。甚至可以将其定义为用户实体上的“获取属性”。好的,谢谢。我决定只与反向“游戏”建立一个对多“用户”关系,将两个玩家链接到游戏,然后将“player1”和“player2”属性添加到只包含该插槽用户名的游戏实体中。谢谢你的帮助。