【发布时间】:2012-12-14 16:08:24
【问题描述】:
我正在使用 Magical Record 来促进 Core Data 操作。想象一下,我们有一组这样的 json,并且定义了一个完全相同的 Core Data 模型:
{
"cars": [
{
"name": "Corolla",
"brand": {
"name": "Toyota"
},
"price": 20000
},
{
"name": "Pirus",
"brand": {
"name": "Toyota"
},
"price": 50000
},
{
"name": "RAV-4",
"brand": {
"name": "Toyota"
},
"price": 30000
},
{
"name": "Golf",
"brand": {
"name": "VW"
},
"price": 40000
},
{
"name": "Polo",
"brand": {
"name": "VW"
},
"price": 20000
}
]
}
现在,如果我们使用 Magical Record 辅助方法:
- (BOOL) MR_importValuesForKeysWithObject:(id)objectData;
或
+ (id) MR_importFromObject:(id)data;
它将作为 5 个 Car 条目和 5 个 Brand 条目导入。
但是,在我们的核心数据模型中,Car-Brand 关系是多对多的,并且 Brand 的 name 属性应该是唯一的,所以我预计 Car 有 5 个条目,Brand 有 2 个条目(Toyota和大众)。
我的问题是如何在使用 Core Data 导入时保持数据的唯一性。这是我可以在核心数据模型中定义的东西,比如唯一属性吗?还是我需要重写 Magical Record 的导入方法?
【问题讨论】:
-
你得到答案了吗?
-
我很确定您必须根据 Marcus S. Zarra 的 forums.pragprog.com/forums/90/topics/2875 以编程方式解决此问题
-
根据cimgf.com/2012/05/29/importing-data-made-easy 看来,您可以添加一个“relatedByAttribute”键并将其映射到应视为键的属性...
-
对了,为什么是多对多的关系呢?如果你有一个
Car,它只能是一个品牌,那么从Brand到Car的关系应该是一对一的