【发布时间】:2014-10-31 10:43:01
【问题描述】:
我有这种情况:
我有两个 CoreData 实体:
MUSIC_ACTIVITY 是一个 ABSTRACT CoreData 实体;
LOCATION:具有一些属性:城市、地址、...
BAR:带有一些属性; PUB:有一些属性;
在 MUSIC_ACTIVITY 我与 LOCATION (1to1) 有关系。
MUSIC_ACTIVITY 是 BAR 的 PARENT 实体; MUSIC_ACTIVITY 是 PUB 的 PARENT 实体;
我自动生成这个模型的类.. 所以: 在 MUSIC_ACTIVITY 我有一个属性 LOCATION 在 LOCATION 我有属性 MUSIC_ACTIVITY (inverse)
我怎样才能访问LOCATION信息到BAR和PUB实体?
例如:我使用“地址”(如姓名)声明了与 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