2013-10-15 95 views
0

我以編程方式在我的應用程序中設置核心數據,並且遇到了「問題」(不完全是問題,但想知道是否有人找到了一個好方法周圍)。核心數據關係 - 使用多個相似類型建立一個關係

我有一個基類FormElement(它擴展了NSManagedObject)。然後我將它擴展爲各種表單類型,例如TextFieldFormElement,TextAreaFormElementSwitchFormElement,全部延伸到FormElement。我還有一個FileAsset類(它擴展了NSManagedObject),用於存儲有關文件的信息。 TextFieldFormElementTextAreaFormElementFileAsset有多對多的關係,但SwitchFormElement沒有。

我明白,我沒有到發送的反比關係對於FileAsset,或我可以在FileAsset設置多個屬性作爲逆每個FormElement,可以有與FileAsset(例如FileAsset.textFieldElementFileAsset.textAreaElement等)的關係。

我的問題是:有沒有人找到一個很好的可行的解決方案,允許與任何管理對象的某種類型的反向關係?我真正想要做的只是在FileAsset(例如FileAsset.element)中擁有一個屬性,它將取FormElement類型的任何對象(以及任何延伸爲FormElement的對象)?

編程也看不出明顯的是實現這一點:
TextFieldFormElement>(一到多)> FileAsset
TextAreaFormElement>(一到多)> FileAsset
FileAsset>(單一個)> FormElement

有沒有人遇到過這樣的問題,並找到了一個很好的解決方案?我想我的另一種選擇是確保FormElement只包含表單元素的所有可能屬性,並通過擴展FormElement來消除。

非常感謝!

回答

0

我將assets定義爲從基類FormElementFileAsset的關係,並使其成爲可選項。然後element是從FileAssetFormElement, 的反比關係,並且可以設置爲基類或任何派生類的元素。