核心数据架构问题 NSDictionary?
Core Data architectural issue NSDictionary?
我想将以下子结构保存到 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?!
}
你应该如何解决这个问题?
我会将 custom
实现为一个单独的实体,比如 CustomValue
并给它两个属性,name
(可以是 "age"、"colour" 、"name"、"school" 或用户选择的任何其他内容)和 value
(它将保存相应的值,“38”、"blue" 或其他)。然后定义从 Contact
实体到 CustomValue
.
的一对多关系
一个小问题是 value
必须始终是同一类型(字符串可能是最简单的类型),因此您需要将该字符串转换为正确的类型(例如 [=26 的 Int =]).
如果将关系命名为 customValues
,则可以使用键路径轻松访问值:myContact.customValues.name
和 myContact.customValues.value
.
我想将以下子结构保存到 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?!
}
你应该如何解决这个问题?
我会将 custom
实现为一个单独的实体,比如 CustomValue
并给它两个属性,name
(可以是 "age"、"colour" 、"name"、"school" 或用户选择的任何其他内容)和 value
(它将保存相应的值,“38”、"blue" 或其他)。然后定义从 Contact
实体到 CustomValue
.
一个小问题是 value
必须始终是同一类型(字符串可能是最简单的类型),因此您需要将该字符串转换为正确的类型(例如 [=26 的 Int =]).
如果将关系命名为 customValues
,则可以使用键路径轻松访问值:myContact.customValues.name
和 myContact.customValues.value
.