我有一些对象,需要在其中找到特定键的总和。
我在对象中具有以下属性
class Due: NSObject {
var dueIndex: Int?
var dueAmount: Double?
}
我有以下逻辑将对象添加到数组
var duesArray = [Due]()
for i in 0..<10 {
let dueObject = NDDue();
// Update the due object with the required data.
dueObject.dueIndex = i
dueObject.dueAmount = 100 * i
// Add the due object to dues array.
duesArray.append(dueObject)
}
在此之后,我需要将DuesArray中所有值的总和作为密钥dueAmount。请让我知道如何使用KVC实现它。
我已经尝试通过使用下面的行。
print((duesArray as AnyObject).valueForKeyPath("@sum.dueAmount")).
得到了以下错误
failed: caught "NSUnknownKeyException", "[Due 0x7ff9094505d0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key dueAmount."
如果你只是想的和dueAmount
你的duesArray
同类型Due
,那么你可以简单地使用reduce()
:
let totalAmount = duesArray.reduce(0.0) { $0 + ($1.dueAmount ?? 0) }
print(totalAmount) // 4500.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句