La correlación de relaciones MagicalRecord duplica los objects a pesar de las keys primarias

Necesito ayuda para un problema que estoy experimentando con la import de datos de MagicalRecord. Tenía la printing de que MagicalRecord podía manejar el mapeo de relaciones sin duplicar objects al mirar las keys principales ( relatedByAttribute ).

Aquí hay un simple JSON:

 [ { parentId: "<unique id>", parentName : "<name>", children : [ { childId: "<unique id>", childName: "<name>" }, { childId: "<unique id>", childName: "<name>" } ] }, { <another parent with children> } ] 

Tengo un Parent NSManagedObject que tiene una relación de muchos a otros con un Child NSManagedObject. El nombre de la relación son children y he configurado el relatedByAttribute en el Child y Parent to childId y parentId respectivamente.

Cuando analizo el JSON, el Parent no se duplica y comtesting correctamente la key primaria y utiliza el object existente si está presente. Sin embargo, para los Children , duplica los objects cada vez que analizo el JSON. Si analizo los Children individual (por lo que JSON solo contiene una matriz con dictionarys para niños) no tiene ningún problema en mapear correctamente los datos y usar los objects existentes para Children que ya existen en la database.

¿Malentendí y tengo expectativas equivocadas de cómo MagicalRecord relaciona las relaciones? Actualmente, he configurado una class de extensión con 'importChildren: `donde puedo manejar todas las búsquedas manualmente y crear / importar los objects en consecuencia.

¡Gracias!

Logré resolver esto hace un time.

Lo que hice fue agregar relatedByAttribute en el dictionary de información de usuario para la relación de children Y para la entidad de Child también.

Por lo tanto, click la relación y establezca relatedByAttribute a childId (en el ejemplo anterior) y también click la entidad Child a la izquierda y para esto también establezca relatedByAttribute a childId en el dictionary User Info para la entidad en sí.

Esto permite que el logging mágico se cargue correctamente con los objects existentes o cree otros nuevos si es necesario, ¡ya que el atributo ID es 100% único!

introduzca la descripción de la imagen aquí