objective c - CoreData: la relación de uno a muchos modelada sale como uno a uno



objective-c ios (1)

Soy nuevo en el modelado de Core Data y me cuesta mucho entender cómo funcionan las relaciones de uno a muchos.

Tengo una entidad principal llamada Task , que puede tener varias instancias de la entidad Comment . Lo modelé así: en Comments , una relación a Task llamada task con la entidad Task un destino. En Task , una relación llamada comments , con Comment como su destino, y ambas relaciones son inversas entre sí.

No definir resultados inversos en advertencias o mensajes de error. Mientras el modelado funciona de esta manera, he notado que una vez que creo un segundo comentario para una Task dada, el primero es reemplazado (relación uno a uno).

¿Cuál sería la forma correcta de decirle al modelo de datos principales que esta relación permite muchos comentarios en una Task ?

Además, dado que CoreData parece administrar las claves primarias por sí mismo, ¿cómo crearía un NSPredicate para recuperar todos los comentarios de una tarea determinada?

Gracias por cualquier sugerencia!

https://src-bin.com


Answer #1

En primer lugar, debe establecer la opción plural en la entidad de Task , seleccionarla en su .xdatamodeled y seleccionar la propiedad de relationship de Task entidad de Task para comments que debería poder ver.

hay una opción plural asegúrese de comprobar eso. Debe volver a crear su NSManagedObject si usa clases generadas y también si usa sqlite store, debe eliminar y reconstruir para que no se queje de que el nuevo esquema no sea el mismo que el anterior.

Para verificar si tiene una relación de uno a varios, su entidad de Task debe tener una propiedad llamada comentarios que es un tipo de clase de NSSet no Comentarios.

Si desea recuperar todos los comentarios para una tarea determinada, debe iterar la NSSet(comments) de esa tarea.





one-to-many