在引用数组控制器的控制器类中,我尝试按如下方式执行此操作:
+ (NSSet *)keyPathsForValuesAffectingTotalPercentProfit {
return [NSSet setWithObjects:
@"myArrayController.arrangedObjects.@sum.netProfit",
@"myArrayController.arrangedObjects.@sum.netCost",
nil];
}
- (NSDecimalNumber *)totalPercentProfit {
NSDecimalNumber *totalProfit = [self valueForKeyPath:@"myArrayController.arrangedObjects.@sum.netProfit"];
NSDecimalNumber *totalCost = [self valueForKeyPath:@"myArrayController.arrangedObjects.@sum.netCost"];
if (!([totalCost compare:[NSDecimalNumber zero]] == NSOrderedSame)) {
return [totalProfit decimalNumberByDividingBy:totalCost];
} else {
return nil;
}
}
但是,当相关密钥路径更改时,绑定到此totalPercentProfit属性的标签不会刷新。
有人能给我指出解决这个问题的正确方向吗?