【问题标题】:Realm: How to add two Results<(Object)> in RealmRealm:如何在 Realm 中添加两个 Results<(Object)>
【发布时间】:2015-06-20 06:48:17
【问题描述】:

对于数组我们可以这样做

resultArray = array1 + array2

我有两个Results结果如何添加它们?

我必须循环还是以其他方式存在?

【问题讨论】:

    标签: ios swift realm


    【解决方案1】:

    RLMResults 像数组而不是数组,所以不能直接相加,必须使用谓词才能得到结果。 Realm Doc中提到了这一点

    RLMResults 是 Realm 中从对象查询返回的自动更新容器类型。

    RLMResults 可以使用与 RLMObject 和 RLMArray 相同的谓词进行查询,并且您可以链接查询以进一步过滤查询结果。

    无法直接创建 RLMResults。

    但如果你想在现有的RLMArray 中添加RLMArrayRLMResults 的对象,你可以使用RLMArray– addObjects: 方法,唯一的条件是两个结果应该属于同一类。 RLMArray Doc供参考。

    【讨论】:

    • Results 没有 addObjects() 方法。
    • RLMArray 包含 addObjects: 方法,所以可以使用。如果您尝试添加或附加两个 RMLResults,这是不可能的,如 Realm Docs 中所述。
    【解决方案2】:

    Results 不支持串联,但您可以创建一个 GeneratorOf 来产生两个结果的总和,或者创建一个 [Object],这是通过这样做的非惰性等效项

    let sum = map(array1) { $0 } + map(array2) { $0}
    

    【讨论】:

    • 这个语法已经过时了......这应该可以工作:foos.map{$0 as Foo} + bars.map{$0 as Bar}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多