2010-09-17 52 views
0

我需要與coredata建立IS-A關係。與coredata建立IS-A關係

我有具有以下結構

產權 PROPERTY layoutType 關係的配置

現在Page類,我有三大類:ImageLayout,則TextLayout和SlideshowLayout。 我希望Page.layout關係根據layoutType屬性引用這三個類中的一個。

我該怎麼做coredata? 還有另一種方法可以做到這一點?請記住,佈局的數量可以在將來增長,所以我不能簡單地將所有屬性放在頁面中,並留出與頁面佈局無關的空白。

預先感謝您!

回答

0

您使用實體繼承。您可以創建一個可以是抽象或具體的父實體。然後,您將父母分配給Page.layout關係。當您需要不同的佈局查找時,可以創建父項的子實例(如子類)。對象圖將接受關係中的任何子實體。

E.g.創建一個稱爲佈局的抽象實體。它可能沒有屬性的保存,像這樣(僞)的關係:

Page{ 
    //...various attributes 
    layout<-->Layout.page 
} 

Layout{ 
    page<-->Page.Layout 
} 

ImageLayout:Layout{ 
    imageName:string 
} 

TextLayout:Layout{ 
    text:string 
} 

SlideshowLayout:Layout{ 
    numberOfSlides:int 
} 

您可以ImageLayout,則TextLayout或SlideshowLayout的任何單個實例分配給任何Page實例的Page.layout關係。

+0

謝謝TechZen!萬分感謝! :) – 2010-09-17 17:48:15