【问题标题】:core data dynamic entities核心数据动态实体
【发布时间】:2011-02-12 01:10:14
【问题描述】:

我希望能够基于将在另一个实体中定义的属性创建一个动态实体。例如:

实体:生命体 属性->名称:字符串

Entity:LifeformCharacteristics 属性->名称:字符串 属性->类型:字符串

实体:动态目录

因此,特征实体将是由用户添加的任何内容填充的实体。一个示例特征可以是名称:身高类型:数字。所以这些特征定义了我想要的动态目录。因此,应使用属性 Height 创建 DynamicCatalog。

DynamicCatalogs 还必须在表中可见,以便用户可以在目录中添加和删除项目。

我可以通过我的 DataModel 构建和管理前 2 个实体,但第 3 个是动态的,我不知道该怎么做。我希望使用核心数据将管理数据的麻烦降到最低。

这篇文章是我找到的最接近答案的内容,但我现在不确定是否要显示或重新组织这样的集合:Faking a dynamic schema in Core Data?

【问题讨论】:

    标签: objective-c cocoa core-data dynamic-schema


    【解决方案1】:

    为什么要给自己找这么多麻烦?

    考虑在 Core Data 中创建 DynamicCatalog 类型,它与称为“DynamicCatalogValue”的东西或某个敲响语义钟的名称之间存在“对多”关系。在您将允许用户描述的“值”上创建属性。例如(伪):

    DynamicValue:
    Attribute: userGivenName;
    Attribute: userGivenValue;
    Attribute: valueType; (e.g. String, Date, etc.)
    

    【讨论】:

    • 这就是伪造动态模式链接所讨论的内容。但是,我不清楚这将如何工作。值类型是变体。如果用户想要创建一个需要是图像类型的 Attribute:picture 怎么办。
    • @mediahack - 这只是一个“入门”示例。在更详细的方案中,您可以对具有抽象作为父级的“潜在”类型进行建模。这样,当用户选择他们要添加的属性类型时,您可以从上下文中实例化适当的类型。
    • @FrankC。您能否提供更详细的解释或示例链接?另外我想知道是否添加了该字段的动态编号?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 2011-11-06
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多