我正在以编程方式在我的应用中设置核心数据,并遇到了问题" (这不是一个问题,但是想知道是否有人找到了一个很好的方法)。
我有一个基类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
。
非常感谢!
答案 0 :(得分:0)
我会将assets
定义为从基类FormElement
到FileAsset
的关系,并将其设为可选。然后element
是从FileAsset
到FormElement
的反比关系,
并且可以设置为基类或任何派生类的元素。