2012-01-14 13 views
1

私のオブジェクトグラフには、古典的な親子関係に2つのエンティティがあります。それぞれの子はいくつかのプロパティを持っていますが、私が興味を持っているのは時間値です(NSDateとして保存されています)。CoreData関係でサマリーを計算する

したがって、私の親オブジェクトは、その子の時間値を合計した計算された合計である必要がある「要約」プロパティを持っています。単純に:各子供に時間が保存されます。子供のすべての合計を表示するようにします。

私はCoreDataに多少の経験がありますが、これを達成するためのいくつかの方法を簡単に考えることができます(たとえば、子エンティティを列挙する総計を追加する一時的なプロパティを親に定義するのは簡単でしょう - )IVARでCoreDataは、固有の、よりエレガントな解決策を持っている場合、私はこの問題を解決するための2つの方法があります

+0

平均時間はありますか?もしそうなら、 'float'や' double'sとして時間を格納し、 '@ sum'演算子を使うことができます。 – Costique

+0

はい、期間です。ありがとう! – isaac

答えて

3

...思ったんだけど:
最初 - NSSetやNSArrayのにデータを取得し、@sum使用オペレータ:

//assume that `childs` are NSArray of your child entities and ammount is attribute to sum 
NSNumber *sum=[childs valueForKeyPath:"@sum.ammount"]; 

第2のフェッチを使用していますfor specific value合計でNSExpressionDescriptionを追加しました。この方法は困難ですが、大規模なデータベースの方が良い

+0

正確に私が探しているのは、どこかにあることがわかっていたからです... – isaac

+0

この類似の質問をすることができます:http://stackoverflow.com/questions/8862341/how-to-sum-on-a -calculated-propertyは、あなたが知識を持っているように聞こえる。 – jrturton