以编程方式创建属性 - 核心数据

2023-11-29

我有一个简单的 iphone 项目,其中包含一个简单的 xcdatamodel,它有一个实体 大约有3个属性..

我想知道是否有一种方法可以以编程方式向实体添加属性。 即,如果用户按下某种“添加”按钮,则会将一个简单的字符串属性添加到实体并保存。

如果这是不可能的,有人可以指出我正确的方向吗?


您可以以编程方式更改实体,但在将托管对象模型分配给托管对象上下文后,您无法更改它,因此它对于任何用户定义的更改都是无用的。无论如何,您都不想以编程方式添加实体,因为这会使您之前创建的持久存储文件变得无用。

如果您想要创建格式更自由、用户可扩展的数据模型,则必须通过向另一个可以对其他数据建模的实体或实体继承组添加可选关系来使您的实体更加灵活。

例如:假设您有一个联系人列表,并且想要向每个联系人添加自由格式字段。您可以像这样设置您的实体。

Contact{
    name:string
    phone:string
    userDefinedFields<-->>UserDefined.contact
}

UserDefined{
    name:string
    contact<<-->Contact.userDefinedFields
}

每当用户添加新字段时,您都会创建一个新字段UserDefined对象并将其添加到Contact.userDefinedFeilds关系。您可以根据需要充实它。如果您需要不止一种类型的用户定义字段,您应该如下设置:

Contact{
    name:string
    phone:string
    userDefinedFields<-->>UserDefined.contact
}

UserDefined{
    name:string
    contact<<-->Contact.userDefinedFields
}

TextField:UserDefined{
    text:string
}

NumberField:UserDefined{
    numValue:Number
}

然后,您可以将 TextField 或 NumberField 对象放入Contact.userDefinedFields如所须。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以编程方式创建属性 - 核心数据 的相关文章

随机推荐