我NSManagedObject
与一对多'与一组物品的关系。我喜欢如何使用KVC keyPaths轻松获取下面的quantity
作为我所有项目的总和。
- (NSNumber *)quantity
{
return [self valueForKeyPath:@"items.@sum.quantity"];
}
现在我想知道是否可以为value
做类似的事情。像@"items.@sum.(quantity * value)"
?
- (NSNumber *)value
{
double value = 0;
for (Item *item in self.items)
{
value += [[item quantity] doubleValue] * [[item value] doubleValue];
}
return [NSNumber numberWithDouble:value];
}
答案 0 :(得分:1)
我想出了如何做到这一点。
只需向Item
类添加新属性并覆盖getter
@property (nonatomic, readonly) NSNumber *totalValue;
...
- (NSNumber *)totalValue
{
return [NSNumber numberWithDouble:[self.value doubleValue] * [self.quantity doubleValue]];
}
现在您可以将@"items.@sum.totalValue
用作keyPath
答案 1 :(得分:-2)
没有。有时你只需要编写代码。