2012-01-14 64 views
1

在我的對象圖中,我有兩個經典父/子關係的實體。每個孩子都有一些屬性,但我感興趣的是一個時間值(作爲NSDate存儲)。用CoreData關係計算彙總

因此,我的父對象有一個「摘要」屬性,它應該是計算出的它的組合子項的時間值的總和。簡單地說:每個孩子存儲一定的時間,我希望父母顯示所有孩子的總和。

我對CoreData有適度的經驗,我可以很容易地想到實現這一點的幾種方法(例如,在枚舉子實體的父項上定義一個瞬態屬性並添加總計與伊娃) - 但我不知道是否CoreData具有內在的和更優雅的解決方案......

+0

時間是否意味着持續時間?如果是這樣,你可以將時間存儲爲'float'或'double'並使用'@ sum'運算符。 – Costique 2012-01-14 16:43:40

+0

是的,持續時間。謝謝! – isaac 2012-01-14 17:03:37

回答

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"]; 

第二個是使用特定的提取for specific value與用數字加上NSExpressionDescription。這種方式更難但更好的更大的分貝

+0

太棒了。正是我在找的東西,知道它在那裏... – isaac 2012-01-14 17:04:27

+0

你也許能夠幫助這個類似的問題:http://stackoverflow.com/questions/8862341/how-to-sum-on-a計算屬性,聽起來像你有它的知識。 – jrturton 2012-01-14 18:34:15