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

时间:2010-01-12 17:26:13

标签: cocoa core-data entity relationship accessor

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

1 个答案:

答案 0 :(得分:5)

您正在使用密钥路径。您应该使用setValue:forKeyPath:代替。