【发布时间】:2014-10-29 04:00:51
【问题描述】:
我正在努力成为一名“优秀的小程序员”,并为我的核心数据模型中的所有关系实现逆运算。但是,我遇到了一种情况,使这看起来不切实际。
为简单起见,考虑一个名为 Location 的通用实体类型,它包含一个 x 属性和一个 y 属性(并且可能包含其他属性,但让我们保持简单)。几种不同的实体类型可能需要跟上一个或多个位置(玩家有一个原始位置和一个当前位置,单元格有位置,目的地有位置等)。鉴于这种通用类型的所有不同用途,在位置实体类型中为它在其他实体中使用的每个实例建立反向关系似乎是不切实际的。
Core Data 中是否有更好的替代方法来实现非常通用的实体类型,从而避免需要没有逆关系的关系?
【问题讨论】:
-
我目前正在开发一个应用程序,该应用程序利用 Core Data 和一个没有逆实体的实体。我也对此感到担忧,并发现以下 SO 帖子很有帮助:stackoverflow.com/questions/764125/… Apple 的“单向关系”下的核心数据编程指南指出“并非严格需要对双向关系进行建模。”我之前没有成功找到替代方案,但我的应用程序中的单向关系也没有任何问题。希望这会有所帮助。
-
感谢您的评论。我猜我要么必须处理单向关系,要么在每次使用我的通用实体类型时强制建立反向关系。我可以使位置成为可转换的属性,但我会施加限制(例如,删除搜索功能),我需要保持不变。我真的希望 Core Data 有一种常规的方法来处理这种类型的模式——必须有很多例子说明通用实体类型很有用,但是如果你每次都必须向它添加反向关系,它就会变得很麻烦使用它