繁体   English   中英

从核心数据属性Swift声明一个数组

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM