gpt4 book ai didi

arrays - 从 Core Data Attribute Swift 声明一个数组

转载 作者:行者123 更新时间:2023-11-30 12:03:09 25 4
gpt4 key购买 nike

我有一个名为:Transaction 的实体和一个名为:amount 的属性。我想从 amount 属性声明一个数组,可以使用数组示例代码求和

sum = array_name.reduce(0,+)

我试图通过这种方式从属性声明一个数组

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 是 Core Data 数字类型之一,

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 {
....
}

为?需要 Double 是因为缺少 @vadian 提到的 NSArray 的类型信息。

关于arrays - 从 Core Data Attribute Swift 声明一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46976853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com