我对Core Data相当新,看了很多教程和论坛,但没有找到解决问题的优雅方案:
我的模型中有三个实体:Worker,Task和SubTask。每个都与它下面的实体有一对多关系,并且与一对一有关。 Worker有很多任务,每个Task都有很多SubTasks,每个SubTask都有一个parentTask,每个Task都有一个Worker。 SubTask有一个startTime属性,它被设置为newObject方法中的当前时间,以及一个触发我的SubTaskArrayController类中的endSubTask方法的按钮。 endSubTask计算startTime和now之间的时间,并为SubTask属性timeWorked设置该值。到现在为止还挺好。问题:
获取所选Task的totalTimeWorked属性以更新自身的最佳方法是什么?
当我尝试类似
时 [currentSubTask setValue:newTotalTime forKey:@"parentTask.totalTimeWorked"];
我明白了:
[setValue:forUndefinedKey:]:实体 SubTask不是密钥的密钥值编码兼容 parentTask.totalTimeWorked。
如何访问当前所选SubTask的parentTask的属性?
答案 0 :(得分:5)
您正在使用密钥路径。您应该使用setValue:forKeyPath:
代替。