2013-10-15 99 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, 的反比关系,并且可以设置为基类或任何派生类的元素。