我想将以下子结构保存到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?!
}
你应该如何解决这个问题?
答案 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.name
和myContact.customValues.value
。