2009-05-27 28 views
2

可以说我有一个包含项目各有netCost和纯利性质的NSArrayController的,我想创建一个总%的利润标签(含的总和利润除以费用总和)。设置在一个NSArrayController物品的属性的总和作为依赖关键

与该阵列控制器我试图做到这一点作为参考控制器类如下:

+ (NSSet *)keyPathsForValuesAffectingTotalPercentProfit { 
    return [NSSet setWithObjects: 
      @"[email protected]", 
      @"[email protected]", 
      nil]; 
} 

- (NSDecimalNumber *)totalPercentProfit { 
    NSDecimalNumber *totalProfit = [self valueForKeyPath:@"[email protected]"]; 
    NSDecimalNumber *totalCost = [self valueForKeyPath:@"[email protected]"]; 
    if (!([totalCost compare:[NSDecimalNumber zero]] == NSOrderedSame)) { 
     return [totalProfit decimalNumberByDividingBy:totalCost]; 
    } else { 
     return nil; 
    } 
} 

然而,当依赖关键路径是绑定到该totalPercentProfit属性标签没有得到刷新改变。

可有人点我在修复这个正确的方向?

回答

1

研究的志愿编程指南,Registering Dependent Keys。你不能以这种方式观察多对多的关系,而且你绝对不能以这种方式观察聚合。阅读“Mac OS X v10.4和Mac OS X v10.5上的多对多关系”部分。