添加获取具有一对多关系的核心数据中单列的总和

Add get sum of single column in core data with One to Many Relationship

伙计们,一个简单的问题,我是核心数据的新手,我有两个具有一对多关系的实体,如下所示。

One to Many in Editor Style

所以我在两个实体中都有一个名为 "item_total" 的列,我需要得到父实体中 item_total 列的总和 + 子实体中 item_total 列的总和实体。

让我们说 Table looks like

所以这两者是一对多的关系,我需要求和为 120。

对于 Cart 的单个实例,您可以使用类似

的方式获得其所有 item_total 值的总和
let cartTotal = cart.item_total + (cart.value(forKeyPath: "addON.@sum.item_total") as! Int32)

如果您有一个 Cart 的数组,您可以得到所有 Cart 个实例的上述总和,例如

let overallTtotal = carts.reduce(0, { (previousResult, cart) -> Int32 in
    return previousResult +  cart.item_total + (cart.value(forKeyPath: "addON.@sum.item_total") as! Int32)
})