我从CoreData返回了一个Customer
对象。我试图计算NSSet中存在的所有amount
属性的总和:
extension Customer {
//...
@NSManaged var customer_Invoices: NSSet?
}
extension Invoice {
//...
@NSManaged var amount: NSDecimalNumber?
@NSManaged var invoice_Customer: Sale?
}
我可以遍历每条记录并添加它们,但我认为有更好的方法吗?
最好的方法是什么?在C#中,我通常只使用一个简单的linq
查询,在Swift中是否存在类似的东西?
答案 0 :(得分:1)
我会循环。其他人阅读和理解你正在做的事情会更容易。如果您需要,更容易调试。而且它可能是最快的(关键时刻你做得足够重要)。
如果你真的想要聪明,你可以这样做:
total = customer.valueForKeyPath("@sum.amount")
见Key Value Coding / Collection Operators。它不像LINQ那样功能齐全,功能强大,所以你会发现它是一个糟糕的替代品。如果您决定使用它,请阅读整个指南,因为您可能不会对KVC有任何特殊的看法。