抽象实体和继承的核心数据(Abstract entities and inheritance in

2019-06-26 02:53发布

我对F1比赛有3个实体数据模型:

  • RacingActor:抽象实体
  • 飞行员:从RacingActor继承
  • 团队:从RacingActor继承

如果我产生NSManagedObject子类来代表这些实体,生成的代码在所有这样的设计并不代表:

  • 一切从继承NSManagedObject
  • 没有什么能阻止我从实例RacingActor
  • 在试点的团队属性的类型的NSManagedObject ,而不是团队

这是预期的行为? 我应该以修复Xcode中生成的代码? 我缺少的东西吗?

顺便说一句,我使用的Xcode 4.3.3

Answer 1:

在芯核心数据是一个对象关系映射库。 很久以前,它被称为企业公司目标框架的WebObjects的一部分。

所以,是的,通过核心数据管理的任何持续性对象的基本对象是NSManagedObject ,你可以做你想做与他们不管。

在你的榜样,团队和试点将共用一个表,你就可以使用查询一次检索团队和飞行员。 这就是这个想法。

Objective-C的继承树(如果使用自定义类),可以反映你定义的模型,但它并不需要。 您可以创建自定义RacingActor类,用它作为自定义的基类TeamPilot班,或者你可以告诉模型中使用RacingActorTeamPilot对象。 你甚至可以定义一个完全无关的基类(提供NSManagedObject是一个家长,直接或间接)的Team和/或Pilot ,如果你想。

你是那么自由地实现您的业务逻辑需要的特定的行为,无论是在控制器或自定义数据类。



文章来源: Abstract entities and inheritance in Core Data