做了相当数量的谷歌并在这里看,我相信以下不能做到。我很有趣,为什么它不能完成,人们最好的解决方法,我在下面提供我的。
我使用简单的部门< ---->>员工模型,两者都具有name属性,而雇员实体也具有timeWorked属性。
问题
我想绑定一个表,第一列显示departement.name,第二列显示部门。@ 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.
然而,绑定到department.employees。@ count确实有效(但我想要更多!)。
其他讨论
以下是另一个有同样问题的话题:nstablecolumn-binding-using-collection-operators-like-sum
另一个:cocoa-bindings-binding-to-the-many-end-of-a-to-many-relationship
我的解决方法
我对此问题的解决方案是为部门实体创建一个执行总和的属性:
-(NSNumber *)departmentHours {
return [self valueForKeyPath:@"employees.@sum.timeWorked"]; }
然后简单地绑定它。
当我想要进行某种数据整理/聚合时,添加这些属性只需要更多代码,但我觉得能够绑定到更优雅 部。@ sum.employees.timeWorked。
任何想法?它不起作用的原因?更好的解决方法?
干杯全部
答案 0 :(得分:0)
你写的关于绑定到department.@sum.employees.timeWorked
- 但是,我认为你应该绑定到department.employees.@sum.timeWorked