0

私は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];
}
4

2 に答える 2

1

これを行う方法を理解しました。

クラスに新しいプロパティを追加しItem、ゲッターをオーバーライドするだけです

@property (nonatomic, readonly) NSNumber *totalValue;

...

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

@"items.@sum.totalValueこれで、keyPath として使用できます

于 2012-11-14T01:29:09.873 に答える
-2

いいえ。コードを書かなければならないこともあります。

于 2012-10-24T03:26:57.180 に答える