【问题标题】:CoreData Abstract entity with relationshipCoreData 具有关系的抽象实体
【发布时间】:2014-10-31 10:43:01
【问题描述】:

我有这种情况:

我有两个 CoreData 实体:

MUSIC_ACTIVITY 是一个 ABSTRACT CoreData 实体;

LOCATION:具有一些属性:城市、地址、...

BAR:带有一些属性; PUB:有一些属性;

MUSIC_ACTIVITY 我与 LOCATION (1to1) 有关系。

MUSIC_ACTIVITYBAR 的 PARENT 实体; MUSIC_ACTIVITYPUB 的 PARENT 实体;

我自动生成这个模型的类.. 所以: 在 MUSIC_ACTIVITY 我有一个属性 LOCATIONLOCATION 我有属性 MUSIC_ACTIVITY (inverse)

我怎样才能访问LOCATION信息到BARPUB实体?

例如:我使用“地址”(如姓名)声明了与 LOCATION 的关系。所以在 MUSIC_ACTIVITY 我有一个属性地址(LOCATION 类型)。 在 PUB 我需要覆盖 init..例如:

-(id) initWithEntity:(NSEntityDescription *)entity insertIntoManagedObjectContext:(NSManagedObjectContext *)context
{
    self = [super initWithEntity:entity insertIntoManagedObjectContext:context];
    if (self) {
        self.name = @"MY NAME";
        self.address = .... ///ERROR ////
    }
    return self;
}

但我不能使用 self.address ...

【问题讨论】:

  • 在子类实例中访问父类属性的方式相同。 myBar.location.address 或其他。是否有一些代码不起作用?
  • 如果 parentEntity 不是抽象实体,则此工作。在这种情况下最好的方法是什么?有没有抽象的父母?
  • 为我工作,这就是为什么我问你是否有一些不工作的代码。确保数据模型中的继承符合您的预期——您可以将 XCode 中的大纲样式更改为“分层”以及验证父实体。
  • 好的,我添加了一个简单的例子..请看我的编辑..
  • 好的,我解决了.. 我重新生成了我的类模型.. 可能我没有:MUSIC_ACTIVITY 作为子类。谢谢。如果您想添加答案,我可以将您的建议设置为问题的答案

标签: ios objective-c core-data relationship


【解决方案1】:

您可以像访问父类的属性一样访问父实体的属性。

XCode 中实体继承的一些调试技巧:

  • 仔细检查父实体
  • 将 xcdatamodel 查看器的大纲样式更改为分层

我也推荐 MOGenerator。更改模型时不必手动重新创建支持类定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-13
    • 2014-12-31
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多