我需要一些帮助来解决我在导入 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
有一对多关系的Child
NSManagedObject。关系名称是children
,我已经分别设置relatedByAttribute
了Child
和Parent
到childId
和parentId
。
当我解析 JSON 时,Parent
它不会重复,它会正确检查主键并使用现有对象(如果存在)。但是,Children
每次我解析 JSON 时,它都会复制对象。如果我单独解析Children
(所以 JSON 只包含一个带有子字典的数组),正确映射数据并使用Children
数据库中已经存在的现有对象没有问题。
我对 MagicalRecord 如何映射关系有误解和错误的期望吗?目前,我已经使用“importChildren:”设置了一个扩展类,我可以在其中手动处理所有查找并相应地创建/导入对象。
谢谢!