[英]Declare an array from Core Data Attribute Swift
我有一个名为: 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 '+'
使用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 {
....
}
as? Double
由于缺少@vadian提到的NSArray
上的类型信息,因此需要as? Double
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.