是否应该与这种关系相反

时间:2013-08-13 20:22:19

标签: ios objective-c core-data relationship inverse

对于我正在研究的回合制多人游戏,我定义了一个游戏实体来存储游戏信息。每个游戏都是两个注册用户之间的玩家。由于我已经有一个用户实体,我决定使用关系将用户链接到游戏。我从游戏用户实体定义了 player1 player2 关系,因为我想明确指定每个用户到两个玩家位置中的一个(而不是玩家属于一组的多人玩家关系)。我还从用户实体与游戏实体建立了关系游戏,以存储用户当前参与的所有游戏。

我不能以这种方式设置反向关系,因为那时我的游戏关系必须与 player1 player2 相反。但Xcode抱怨缺乏逆,所以我想知道我是否应该以另一种方式建立我的关系模型?以下是Xcode警告:

  

一致性错误:User.games没有反转;这是一个高级设置(对象不能在特定关系的多个目的地中)

  

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

1 个答案:

答案 0 :(得分:2)

您可以通过定义两个反向关系来解决这个问题:games1player1相反,games2player2相反。< / p>

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