cocoa - 以编程方式从 Core Data 中的另一个实体设置一个实体的值

标签 cocoa core-data entity relationship accessor

在核心数据中,我的模型中有三个实体:Worker、Task 和 SubTask。每个实体都与其下面的实体存在一对多关系以及一对一逆关系。 Worker有很多Task,每个Task有很多SubTask,每个SubTask有一个parentTask,每个Task有一个Worker。 SubTask 有一个 startTime 属性,在 newObject 方法中设置为当前时间,还有一个按钮在我的 SubTaskArrayController 类中触发 endSubTask 方法。 endSubTask 计算 startTime 和 now 之间的时间,并为 SubTask 属性 timeWorked 设置该值。到目前为止,一切都很好。问题:

让所选任务的totalTimeWorked 属性自行更新的最佳方法是什么?

当我尝试类似的事情时

[currentSubTask setValue:newTotalTime forKey:@"parentTask.totalTimeWorked"];

我得到:

[ setValue:forUndefinedKey:]: the entity SubTask is not key value coding-compliant for the key parentTask.totalTimeWorked.

如何访问当前所选子任务的父任务的属性?

最佳答案

您正在使用关键路径。您应该使用 setValue:forKeyPath: 来代替。

关于cocoa - 以编程方式从 Core Data 中的另一个实体设置一个实体的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2050925/

相关文章:

objective-c - 将包含 URL 的 NSString 转换为 POSIX 路径

macos - 使用命令行参数启动应用程序

objective-c - 在 Objective-C 中将 NSArray 过滤成一个新的 NSArray

core-data - CoreData Swift 和 transient 属性 getter

spring-boot - 在Spring ElasticSearch Data中找不到类EntityMapper

mysql - Entity Framework - 选择的嵌套级别太高

cocoa - NSMutableArray 与结构

cocoa - 发电机和 swift

objective-c - 从核心数据中获取数组

没有关系的 Symfony 实体