Nehmen wir an, ich habe einen NSArrayController, der Elemente mit den Eigenschaften netCost und netProfit enthält, und ich möchte ein Total Percent Profit-Label erstellen (mit der Summe der Gewinne geteilt durch die Summe der Kosten).Das Aggregat einer Eigenschaft der Elemente in einem NSArrayController als abhängigen Schlüssel festlegen
In der Controller-Klasse mit einem Verweis auf die Array-Controller ich versucht haben, dies zu tun, wie folgt:
+ (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;
}
}
Doch die auf diese totalPercentProfit Eigenschaft gebundene Markierung nicht aktualisiert wird erhalten, wenn die abhängigen Schlüsselpfade geändert.
Kann mir jemand in die richtige Richtung zeigen, um das zu beheben?