【发布时间】:2013-10-15 11:59:58
【问题描述】:
我正在以编程方式在我的应用程序中设置 Core Data,并且遇到了一个“问题”(不完全是问题,但想知道是否有人找到了解决它的好方法)。
我有一个基类FormElement(它扩展了NSManagedObject)。然后我将其扩展到各种表单类型,例如TextFieldFormElement、TextAreaFormElement 和 SwitchFormElement,都扩展了 FormElement。我还有一个FileAsset 类(它扩展了NSManagedObject),用于存储有关文件的信息。 TextFieldFormElement 和 TextAreaFormElement 与 FileAsset 具有一对多关系,但 SwitchFormElement 没有。
我知道我不必为FileAsset 发送反向关系,或者我可以将FileAsset 中的多个属性设置为每个FormElement 的反向关系,这些属性可以与FileAsset 有关系(例如FileAsset.textFieldElement、FileAsset.textAreaElement 等)。
我的问题是:有没有人找到一个很好的可行解决方案来允许与某种类型的任何托管对象建立反向关系?我真正想做的只是在FileAsset 中拥有一个属性(例如FileAsset.element),它将采用FormElement 类型的任何对象(因此,任何扩展FormElement 的对象)?
以编程方式,我看不到一个明显的实现方式:
TextFieldFormElement >(一对多)> FileAsset
TextAreaFormElement >(一对多)> FileAsset
FileAsset >(一对一)> FormElement
以前有没有人遇到过这样的问题并找到了很好的解决方案?我想我的另一个选择是确保 FormElement 简单地包含表单元素的所有可能属性,并取消扩展 FormElement。
非常感谢!
【问题讨论】:
标签: objective-c core-data relationships inverse