以编程方式从另一个实体设置一个实体中的值.核心数据问题

jsl*_*ger 0 cocoa entity core-data accessor relationship

我是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的属性?

Joh*_*ool 5

您正在使用密钥路径.你应该使用setValue:forKeyPath:.