我在Person
中有一个Core Data
对象存储,它包含两个属性:
现在我决定还要存储一天/每月/每年的平均付款。
我应该如何将其存储在Core Data中?在Person
对象里面?创建新对象?
答案 0 :(得分:2)
解决方案不是存储摘要数据。您可以向托管对象子类添加便捷方法以提供所需的值。这些方面的东西:
func averageForPeriod(startDate: NSDate, endDate: NSDate) -> Double {
guard self.payments != nil else { return 0 }
let periodPayments = (self.payments as Set<Payment>).filter {
$0.date >= startDate && $0.date <= endDate
}
return periodPayments.valueForKeyPath("@avg.amount").doubleValue
}
注意:要比较这样的日期,您需要定义自己的比较功能,如here所示,或者您可以使用NSTimeInterval
。