代码之家  ›  专栏  ›  技术社区  ›  rob5408

NSManagedObject关系以符合协议的类为目标

  •  1
  • rob5408  · 技术社区  · 14 年前

    我有一个Offer类(NSManagedObject子类),我想用它来处理购买的Offer。每个报价的一方是买方,另一方是产品。还有一个代价。然而,这些类实例可能有非常不同的血统,很可能在返回NSManagedObject的过程中会有不同的父类。产品也是如此。

    正因为如此,我不想让“买方”和“产品”抽象类继承这些项目。我更希望协议是“可购买的”和“可购买的”,并让类实现如何购买和如何购买。不幸的是,似乎NSManagedObjects中的关系不允许您通过它们的协议指定类。

    2 回复  |  直到 14 年前
        1
  •  2
  •   TechZen    14 年前

    不能分配协议,因为上下文必须实例化实际对象,而协议不会告诉上下文要实例化哪个类。例如,如果你告诉上下文插入 Buyer 协议实际上会创建什么子类?

    买方 Product Offer . 那么对于每一种 买方 创建子实体。实体不必添加新的属性,它们可以有不同的名称。这边,安 报价 买方 buyer 关系及其任何子实体 product 关系。

    这里的关键是类的继承不必与实体继承并行。类树可以与实体树完全不同。只要单个类映射到单个实体上,它就可以工作。

    抽象实体本身就是协议定义。它们定义了一个实体必须拥有的接口,但它们本身并没有实现任何东西。

        2
  •  0
  •   Not Rick Astley    14 年前

    我是个新手,但我认为你想要的东西是不可能的。