我有一个名为Transaction
的实体和一个名为amount
的属性。
我想声明一个来自amount
属性的数组,该数组可以使用求和数组示例代码
sum = array_name.reduce(0,+)
我试图以这种方式从Attribute
声明一个数组var amountArray =
(self.transactionsArray as NSArray).value(forKey: "amount") as! NSArray
sum = amountArray.reduce(0,+)
但它不起作用并抛出错误
Ambiguous reference to member '+'
答案 0 :(得分:0)
使用Swift 4,@ MartinR的建议应该有效。如果没有,您应该提供有关代码的更多信息,可能会详细介绍Transaction
的详细信息,amount
变量的类型以及transactionsArray
的确切性质。
假设transactionsArray
被声明为非可选[Transaction]
且amount
是核心数据数字类型之一,
let sum = transactionsArray.reduce(0) { $0 + $1.amount }
......是对的。您可以通过声明sum
:
let sum : Double = transactionsArray.reduce(0) { $0 + $1.amount }
(请务必在此处使用与amount
相同的类型,我只是猜测Double
)。
可以通过NSArray
和@sum
运算符获得总和,例如
if let sum = (transactionsArray as NSArray).value(forKeyPath:"@sum.amount") as? Double {
....
}
由于@vadian提到的as? Double
缺少类型信息,因此需要NSArray
。