Chr*_*hen 7 core-data magicalrecord
我正在使用Magical Record来促进核心数据操作.想象一下,我们有一组像这样的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
}
]
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我们使用Magical Record辅助方法:
- (BOOL) MR_importValuesForKeysWithObject:(id)objectData;
Run Code Online (Sandbox Code Playgroud)
要么
+ (id) MR_importFromObject:(id)data;
Run Code Online (Sandbox Code Playgroud)
它将作为5个Car的条目和5个Brand的条目导入.
然而,在我们的核心数据模型中,Car-Brand关系是多对多关系,而Brand的name属性应该是唯一的,所以我期待5个Car和2个Brand(Toyota和VW)条目.
我的问题是如何在使用Core Data导入时保持数据的唯一性.这是我可以在Core Data模型中定义的内容,例如unique属性吗?还是我需要覆盖魔法记录的导入方法?
您需要告诉MagicalRecord什么是唯一标识符.在您的情况下,您没有唯一的ID,但您可以使用该name属性.
假设你有一个CarNSManagedObject与所涉及的关系BrandNSManagedObject,你必须设置relatedByAttribute到name在关系到Brand在用户信息字典.
完成此操作后,MagicalRecord将查找具有该属性的所有记录,name并使用相应的记录(如果已存在),或者根据需要创建一个记录.
这意味着您不必使用类别类重写重要内容.
如果您需要其他信息,请与我们联系.
| 归档时间: |
|
| 查看次数: |
2131 次 |
| 最近记录: |