我需要一些帮助来解决我在 MagicalRecord 数据导入方面遇到的问题。我的印象是 MagicalRecord 能够通过查看主键来处理关系映射,而无需复制对象(relatedByAttribute
).
这是一个简单的 JSON:
[
{
parentId: "<unique id>",
parentName : "<name>",
children : [
{
childId: "<unique id>",
childName: "<name>"
},
{
childId: "<unique id>",
childName: "<name>"
}
]
},
{ <another parent with children> }
]
我有一个 NSManagedObjectParent
与 a 有一对多关系Child
NSManagedObject。关系名称是children
我已经设置了relatedByAttribute
on the Child
and Parent
to childId
and parentId
分别。
当我解析 JSON 时Parent
不重复,并且它正确检查主键并使用现有对象(如果存在)。然而对于Children
每次我解析 JSON 时,它都会复制对象。如果我解析Children
单独(因此 JSON 仅包含一个带有子字典的数组),它可以正确映射数据并使用现有对象Children
数据库中已经存在的。
我是否误解了 MagicalRecord 映射关系的方式并抱有错误的期望?目前,我已经设置了一个带有“importChildren:”的扩展类,我可以在其中手动处理所有查找并相应地创建/导入对象。
Thanks!
不久前我设法解决了这个问题。
我所做的是添加relatedByAttribute
在用户信息字典中children
关系 AND 为Child
实体也是如此。
所以点击关系并设置relatedByAttribute
to childId
(在上面的示例中),然后单击左侧的子实体,并为此设置relatedByAttribute
to childId
在实体本身的用户信息字典中。
这允许 Magical Record 使用现有对象正确映射或根据需要创建新对象 - 假设 ID 属性 100% 唯一!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)