objective-c - 使用 CoreData 关系计算摘要

标签 objective-c ios math core-data

在我的对象图中,我在经典的父/子关系中有两个实体。每个 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/

相关文章:

iphone - 获取 UITableViewCell 文本的正确方法

ios - 使用 | 找到了哪个 NSRegularExpression运算符(operator)

python - 如何以方便的数学方式输入公式来绘制矢量场?

ios - 更改 Uilabel 文本样式 Objective-C

objective-c - 将密码范围移出界限

objective-c - 在 XCode + Objective-C 中链接用 C 编写的库

python - 将日期时间从 Objective C 传递到 Django

ios - 如何使用 SQL 格式的动态 where 子句创建谓词

algorithm - 如何判断一个整数是不是3的幂?

php - 选择一个以前没有被选中的随机行?