我有一个包含3个实体的一级方程式比赛的数据模型:
如果我生成NSManagedObject
个子类来表示这些实体,那么生成的代码根本不代表这个设计:
NSManagedObject
NSManagedObject
而非团队这是预期的行为吗?我应该修复Xcode生成的代码吗?我错过了什么吗?
BTW,我正在使用Xcode 4.3.3
答案 0 :(得分:11)
核心数据核心是对象关系映射库。很久以前它被称为Entreprise Object Framework,是WebObjects的一部分。
所以,核心数据管理的任何持久对象的基础对象都是NSManagedObject
,你可以随心所欲地做任何事情。
在您的示例中,Team和Pilot将共享一个公共表,您将能够使用查询立即检索团队和飞行员。这就是主意。
Objective-C继承树(如果使用自定义类)可以镜像您定义的模型,但它不需要。您可以创建自定义RacingActor
类,将其用作自定义Team
和Pilot
类的基类,或者您可以告诉模型使用RacingActor
作为{{1} }和Team
个对象。如果您愿意,您甚至可以为Pilot
和/或NSManagedObject
定义一个完全不相关的基类(如果Team
是父,直接或间接)。
然后,您可以在控制器或自定义数据类中自由地实现业务逻辑中所需的特定行为。