2014-09-06 43 views
1

CoreData抽象的實體我有這種情況:有關係

我有兩個CoreData實體:

MUSIC_ACTIVITY是一個抽象CoreData實體;

位置:與某些屬性爲:城市,地址,...

BAR:與某些屬性; PUB:有一些屬性;

in MUSIC_ACTIVITY我與有關係位置(1to1)。

MUSIC_ACTIVITY是PARENT實體BAR; MUSIC_ACTIVITY是PARENT實體PUB;

我自動生成的類此模型.. 所以: 在MUSIC_ACTIVITY我有一個屬性位置位置我擁有財產性MUSIC_ACTIVITY(逆)

我怎樣才能訪問到位置信息到BARPUB實體?

例如:我使用'地址'(如名稱)聲明瞭與LOCATION的關係。所以在MUSIC_ACTIVITY中我有一個屬性地址(LOCATION類型)。 在PUB我需要覆蓋init..for例如:

-(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 ...

+0

您將以相同的方式訪問子類實例中父類的屬性。 'myBar.location.address'或其他。有沒有一些代碼不能正常工作? – stevesliva 2014-09-06 19:19:23

+0

這項工作如果parentEntity不是抽象實體。這種情況下最好的方法是什麼?有父母爲抽象還是不是? – Safari 2014-09-06 19:30:07

+0

適用於我,這就是爲什麼我問你是否有一些代碼無法工作。確保數據模型中的繼承符合您的期望 - 您可以將XCode中的大綱樣式更改爲「分層」,並驗證父實體。 – stevesliva 2014-09-06 19:39:37

回答

1

您可以訪問父實體的屬性一樣,你會屬性的父類。

只是在XCode的一些調試技巧實體繼承:

  • 仔細檢查父實體
  • 更改xcdatamodel觀衆的輪廓風格分層

我還建議MOGenerator。更改模型時,不必手動重新創建支持類定義。