Cocoa,使用集合运算符和多个关系属性进行绑定

Cocoa,使用集合运算符和多个关系属性进行绑定,cocoa,core-data,interface-builder,cocoa-bindings,Cocoa,Core Data,Interface Builder,Cocoa Bindings,在谷歌做了相当多的工作后,看看这里,我相信以下几点是做不到的。我感兴趣的是为什么它不能被完成,以及人们最好的解决办法,我在下面提供我的 我使用简单的department>employee模型,其中既有name属性,也有employee实体的timeWorked属性 问题 我想绑定一个表,第一列显示department.name,第二列显示department.@sum.employees.timeWorked。尝试执行此操作会导致以下错误: [<_NSFaultingMutableSet

在谷歌做了相当多的工作后,看看这里,我相信以下几点是做不到的。我感兴趣的是为什么它不能被完成,以及人们最好的解决办法,我在下面提供我的

我使用简单的department>employee模型,其中既有name属性,也有employee实体的timeWorked属性

问题

我想绑定一个表,第一列显示department.name,第二列显示department.@sum.employees.timeWorked。尝试执行此操作会导致以下错误:

[<_NSFaultingMutableSet 0x1d5e50> addObserver:forKeyPath:options:context:] is not supported. Key path: timeWorked
Cannot remove an observer <NSTableBinder 0x1a9280> for the key path "employees.timeWorked" from <Depatement 0x1faf40> because it is not registered as an observer.
然后简单地绑定到它

当我想对数据进行某种排序/聚合时,只需在添加这些属性时编写多一点代码,但我确实觉得能够绑定到 部门。@sum.employees.timeWorked

有什么想法吗??为什么它不起作用?更好的解决办法


欢迎大家

您写的关于绑定到
部门的文章。@sum.employees.timeWorked
-但是,我认为您应该绑定到
部门.employees.@sum.timeWorked

是否有必要使用上述方法创建属性或类别。不必是属性并保存在持久存储中。你可以让它成为department类的@property。不过,改变任何员工的工作时间并不一定会导致重新计算部门工作时间。除非员工的setTimeWorked更改了KeyPaths ForvaluesAffectingDepartmentHours中的keyPath
-(NSNumber *)departmentHours {  
    return [self valueForKeyPath:@"employees.@sum.timeWorked"]; }