核心数据实体属性的总和数组

sum array of Core Data entity attributes

我有两个核心数据实体,proposal 和 wageClass,它们彼此之间存在一对多关系。 WageClass 有一个 Int 属性,numberOfWorkers。我需要对与每个提案相关的 numberOfWorkers 数组求和。

目前我用的是:

 let proposalNumberOfWorkers = proposal.value(forKeyPath: "wageClasses.numberOfWorkers")

当我这样做时:

 let arraySum = proposalNumberOfWorkers.reduce(0, +)

我收到一条错误消息,指出 Any 类型没有成员归约。当我删除前一行代码并尝试像这样打印数组时:

 totalWorkersLabel.text = "\(proposalNumberOfWorkers!)"

UILabel 看起来像这样:{(15)}

(15 是数组中的第一个或最近的项目,我不确定是哪个)

所以我想知道,1) 我如何使它成为 .reduce,以及 2) 括号和括号是关于什么的。预先感谢您的意见!

方括号和括号表示proposalNumberOfWorkers!是一个NSSetNSSet 无法识别 reduce 方法。 NSSetSet 是桥接的,因此您可以通过将 proposalNumberOfWorkers 转换为 Set:

来获得所需的内容
let proposalNumberOfWorkers = proposal.value(forKeyPath: "wageClasses.numberOfWorkers") as! Set<Int>

然后使用reduce.