我有一个具有3个实体的F1赛车的数据模型:
> RacingActor:抽象实体
> Pilot:继承自RacingActor
> Team:继承自RacingActor
如果我生成NSManagedobject子类来表示这些实体,生成的代码根本不代表这个设计:
>一切都从NSManagedobject继承
没有什么可以阻止我实例化RacingActor
> Pilot中的团队属性类型为NSManagedobject而不是Team
这是预期的行为吗?我应该修复Xcode生成的代码吗?我错过了什么吗?
BTW,我使用的是Xcode 4.3.3
解决方法 核心数据核心是一个对象关系映射库.很久以前,它被称为Entreprise对象框架,WebObjects的一部分.所以是的,由Core Data管理的任何持久性对象的基础对象是NSManagedobject,您可以随意使用任何所需的对象.
在您的示例中,团队和飞行员将共享一个公用表,您可以使用查询一次检索团队和飞行员.这是想法.
Objective-C继承树(如果使用自定义类)可以镜像您定义的模型,但不需要.您可以创建一个自定义的RacingActor类,将其用作自定义Team和Pilot类的基类,或者您可以将模型用于使用RacingActor for Team和Pilot对象.您甚至可以为Team和/或Pilot定义一个完全不相关的基类(NSManagedobject是父级,直接或间接).
然后,您可以在控制器或自定义数据类中自由实现业务逻辑中需要的特定行为.
总结以上是内存溢出为你收集整理的xcode – 核心数据中的抽象实体和继承全部内容,希望文章能够帮你解决xcode – 核心数据中的抽象实体和继承所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)