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

Posted

技术标签:

【中文标题】核心数据实体属性的总和数组【英文标题】:sum array of Core Data entity attributes 【发布时间】:2017-02-03 03:31:04 【问题描述】:

我有两个核心数据实体,proposal 和工资类,每个实体都具有一对多的关系。 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) 括号和括号是关于什么的。提前感谢您的 cmets!

【问题讨论】:

【参考方案1】:

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

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

然后使用reduce

【讨论】:

谢谢!效果很好!

以上是关于核心数据实体属性的总和数组的主要内容,如果未能解决你的问题,请参考以下文章

核心数据实体中所有对象的属性总和

所有实例属性的核心数据总和

如何获取核心数据属性中所有条目的总和?

最佳实践? - 数组/字典作为核心数据实体属性 [关闭]

最佳实践? - 数组/字典作为核心数据实体属性 [关闭]

分组核心数据对象