gpt4 book ai didi

swift3 - 将 Realm 对象的 Swift 数组转换回 Realm 结果

转载 作者:行者123 更新时间:2023-12-01 13:41:05 25 4
gpt4 key购买 nike

我有一个 Entry具有 FieldValue 列表的类其中的对象:

class Entry: Object{
let fieldValues = List<FieldValue>()
//...
}

class FieldValue: Object{
dynamic var total = 0
//...
}

我对查询中的某些条目进行了一系列过滤,如下所示:

var entryObjects = realm.objects(Entry.self).filter(...)

我现在要sum total所有 fieldValues 的值仍然存在于我过滤的 entryObjects 中.因此,如果我遍历所有条目,我可以构建一个 FieldValue 的数组像这样的对象:

var fieldValues = [FieldValue]()
for entry in entryObjects{
fieldValues += entry.fieldValues
}

我现在有 fieldValues类型 [FieldValue] .但是为了做一个sum在其 total属性,它必须是 Results<FieldValue> 类型:

let total:Int = fieldValues.sum(ofProperty: "total") <-- /// Error! ///

如何转换我的 [FieldValue]数组返回 Results<FieldValue>这样我就可以对其进行聚合操作了吗?

最佳答案

这样做:

let entryObjects = realm.objects(Entry.self).filter(...)
let total = entryObjects.map({ $0.fieldValues.sum(ofProperty: "total") }).reduce(0, +)

当 Realm 支持对嵌套键路径 ( #3392 ) 进行聚合操作时,就可以为此使用 KVC,但这仍在进行中。

关于swift3 - 将 Realm 对象的 Swift 数组转换回 Realm 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40185315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com