在我的对象图中,我在经典的父/子关系中有两个实体。每个 child 都有许多属性,但我感兴趣的是时间值(存储为 NSDate)。
所以我的父对象有一个“摘要”属性,它应该是它的组合子时间值的计算总和。简单地说:每个 child 存储一段时间,我希望 parent 显示所有 child 的总和。
我对 CoreData 有一定的经验,我可以很容易地想到一些方法来实现这一点(例如,在枚举子实体并使用 ivar 添加总数的父级上定义一个 transient 属性非常容易) - 但我想知道 CoreData 是否有一个固有且更优雅的解决方案......
最佳答案
有两种方法可以解决这个问题:
首先 - 将您的数据获取到 NSSet 或 NSArray 并使用 @sum 运算符:
//assume that `childs` are NSArray of your child entities and ammount is attribute to sum
NSNumber *sum=[childs valueForKeyPath:"@sum.ammount"];
第二个是使用特定的 fetch for specific value添加了 NSExpressionDescription一笔。这种方式更难,但对于更大的数据库更好
关于objective-c - 使用 CoreData 关系计算摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863500/