Core data 导入具有神奇记录的数据时避免重复条目
我正在使用神奇记录来促进核心数据操作。假设我们有一组这样的json,核心数据模型定义完全相同:Core data 导入具有神奇记录的数据时避免重复条目,core-data,magicalrecord,Core Data,Magicalrecord,我正在使用神奇记录来促进核心数据操作。假设我们有一组这样的json,核心数据模型定义完全相同: { "cars": [ { "name": "Corolla", "brand": { "name": "Toyota" }, "price": 20000 }, { "name": "Pirus
{
"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
}
]
}
现在,如果我们使用神奇的记录助手方法:
- (BOOL) MR_importValuesForKeysWithObject:(id)objectData;
或
它将作为5项汽车和5项品牌进口
然而,在我们的核心数据模型中,汽车品牌关系是一种多对多关系,品牌的名称属性应该是唯一的,因此我预计有5个汽车条目和2个品牌条目(丰田和大众)
我的问题是如何在导入核心数据时保持数据的唯一性。这是我可以在核心数据模型中定义的东西吗,比如unique属性?还是我需要覆盖MagicalRecord的导入方法?您需要告诉MagicalRecord什么是唯一标识符。在您的情况下,您没有唯一的ID,但是您可以使用
name
属性
假设您有一辆Car
NSManagedObject与Brand
NSManagedObject有关系,您必须在用户信息字典中将relatedByAttribute
设置为name
完成此操作后,MagicalRecord将查找具有属性name
的所有记录,如果已经存在记录,则使用相应的记录,或者根据需要创建记录
这意味着您不必用category类重写important
如果您需要其他信息,请告诉我。您得到了答案吗?我非常确定您必须基于Marcus S.Zarra的编程解决此问题。根据它,您似乎可以添加一个“relatedByAttribute”键,并将其映射到它应视为键的属性……顺便说一下,为什么是多对多关系?如果您有一辆
汽车
它只能是一个品牌,那么在品牌
到汽车
+ (id) MR_importFromObject:(id)data;