2012-10-24 36 views
0

我有NSManagedObject與一組項目的'一對多'關係。我喜歡我如何使用KVC keyPaths輕鬆獲得quantity作爲所有項目的總和。Key Value編碼keyPath @sum值的乘積?

- (NSNumber *)quantity 
{ 
    return [self valueForKeyPath:@"[email protected]"]; 
} 

現在我想知道是否有可能做同樣這裏value的東西。像@"[email protected](quantity * value)"

- (NSNumber *)value 
{ 
    double value = 0; 
    for (Item *item in self.items) 
    { 
     value += [[item quantity] doubleValue] * [[item value] doubleValue]; 
    } 
    return [NSNumber numberWithDouble:value]; 
} 

回答

1

我想出瞭如何做到這一點。

只是一個新的屬性添加到Item類並重寫吸氣

@property (nonatomic, readonly) NSNumber *totalValue; 

... 

- (NSNumber *)totalValue 
{ 
    return [NSNumber numberWithDouble:[self.value doubleValue] * [self.quantity doubleValue]]; 
} 

現在你可以使用@"[email protected]作爲的keyPath

-2

不,有時你只是要寫代碼。