【问题标题】:Core Data architectural issue NSDictionary?核心数据架构问题 NSDictionary?
【发布时间】:2015-04-01 23:22:11
【问题描述】:

我想将下面的子结构保存到 Core Data 中。

// json #1

{
1 = Viktor;
2 = Fries;
3 = "0179 2147911";
custom =     {
    name = Test;
    school = Harvard;
};
id = 0232;
status = 4;
lastupdate = 111111;

}

// JSON #2

{
1 = Viktor;
2 = Fries;
3 = "0179 2147911";
custom =     {
    age = Testage;
    color = blue;
};
id = 0232;

}

用户可以自己自定义custom中的条目。两个 JSON 数据都应该使用相同的模型保存。

我认为我必须为自定义字段使用 NSDictionary。 你怎么看? 如何访问 NSFetchedresultController 中的自定义字段?

// 型号

class Contact: NSManagedObject {

@NSManaged var 1: String?
@NSManaged var 2: String?
@NSManaged var 3: String?
@NSManaged var id: String?
@NSManaged var status: String?
@NSManaged var lastupdate: String?
@NSManaged var id: NSDictionary?    <= Don't know how to implement it?!
}

你应该如何解决这个问题?

【问题讨论】:

    标签: ios core-data ios8


    【解决方案1】:

    我会将custom 实现为一个单独的实体,例如CustomValue 并赋予它两个属性name(可以是“年龄”、“颜色”、“姓名”、“学校”或其他任何内容用户选择)和value(它将保存相应的值,“38”、“blue”或其他)。然后定义从Contact 实体到CustomValue 的一对多关系。

    一个小问题是value 必须始终属于同一类型(对于该字符串可能最简单),因此您需要将该字符串转换为正确的类型(例如,“年龄”为 Int)。

    如果您将关系命名为 customValues,则使用键路径可以轻松访问值:myContact.customValues.namemyContact.customValues.value

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      • 2011-07-03
      相关资源
      最近更新 更多