我有两个核心数据实体,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的含义。提前感谢您的意见!
答案 0 :(得分:0)
括号和括号表示proposalNumberOfWorkers!
是NSSet
。 NSSet
无法识别reduce
方法。 NSSet
和Set
是桥接的,因此您可以通过将proposalNumberOfWorkers
作为Set
投放来获得所需内容:
let proposalNumberOfWorkers = proposal.value(forKeyPath: "wageClasses.numberOfWorkers") as! Set<Int>
然后使用reduce
。