核心数据架构问题NSDictionary?

时间:2015-04-01 23:22:11

标签: ios core-data ios8

我想将以下子结构保存到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;

}

用户可以自己定制自定义条目。应使用相同的模型保存两个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?!
}

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

1 个答案:

答案 0 :(得分:0)

我会将custom作为一个单独的实体来实施,比如说CustomValue并赋予它两个属性name(可能是&#34;年龄&#34;,&#34; color&#34;,&#34; name&#34;,&#34; school&#34;或者用户选择的任何其他内容)和value(将保留相应的值,&#34; 38& #34;,&#34;蓝色&#34;或其他)。然后定义从Contact实体到CustomValue的一对多关系。

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

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