El establecimiento de un valor en una entidad de programación de otra entidad. preguntas de Datos Básicos
-
20-09-2019 - |
Pregunta
Soy bastante nuevo a la base de datos, han mirado a través de muchos tutoriales y foros y no han encontrado la solución elegante a mi problema:
Tengo tres entidades en mi modelo: Trabajador, tareas y subtarea. Cada uno tiene una relación de muchos a la entidad por debajo de ella y una inversa a uno. Trabajador tiene muchas tareas, cada una tiene muchas tareas parciales, cada subtarea tiene un parentTask, y cada tarea tiene un solo trabajador. Subtarea tiene un atributo horaInicio que consigue el sistema a la hora actual en el método newObject y un botón que acciona método endSubTask en mi clase SubTaskArrayController. endSubTask calcula el tiempo entre horaInicio y ahora y establece que el valor para el atributo subtarea timeWorked. Hasta aquí todo bien. El problema:
¿Cuál es la mejor manera de conseguir totalTimeWorked de la tarea seleccionada atributo para actualizarse?
Cuando intento algo así como
[currentSubTask setValue:newTotalTime forKey:@"parentTask.totalTimeWorked"];
Me sale:
[setValue: forUndefinedKey:]: la entidad Subtarea es el valor clave de codificación no compatible para la clave parentTask.totalTimeWorked.
¿Cómo accedo a los atributos de la parentTask de la subtarea seleccionada en ese momento?
Solución
Está utilizando una ruta de la clave. Debe utilizar setValue:forKeyPath:
lugar.