sum数组核心数据实体属性

时间:2017-02-03 03:31:05

标签: core-data swift3 xcode8 reduce relationships

我有两个核心数据实体,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)括号和parens的含义。提前感谢您的意见!

1 个答案:

答案 0 :(得分:0)

括号和括号表示proposalNumberOfWorkers!NSSetNSSet无法识别reduce方法。 NSSetSet是桥接的,因此您可以通过将proposalNumberOfWorkers作为Set投放来获得所需内容:

let proposalNumberOfWorkers = proposal.value(forKeyPath: "wageClasses.numberOfWorkers") as! Set<Int>

然后使用reduce