繁体   English   中英

领域linkingObjects数组与结果

[英]Realm linkingObjects array vs. Results

我有一个Book类和一个ReadingSession类,它们的关系声明如下:

public class Book: Object {
    // (…)
    var readingSessions: [ReadingSession] {
        return linkingObjects(ReadingSession.self, forProperty: "book")
    }
}

public class ReadingSession: Object {
    // (…)
    dynamic var book: Book?
}

现在我想在该readingSessions属性上使用Realm的Results方法,例如filter()sum() ,但是我不能,因为它是一个常规数组。

因此,我在Book类中添加了另一个计算属性:

var sessions: Results<ReadingSession> {
    let realm = try! Realm()
    return realm.objects(ReadingSession).filter("book == %@", self)
}

现在,当我需要使用那些方法时,我会考虑sessions属性,而当我不使用时,我会使用readingSessions数组。

所以我的问题是:为什么在Realm的文档中推荐第一种使用linkingObjects()方法的方法? 为什么我不应该使用Realm的Results将该属性完全替换为最新属性? 以我的经验,使用Realm的Results通常要快得多,除了额外的方法外,即使我需要常规数组,也可以只转换Results 这样做有什么不利之处吗?

提前致谢,

丹尼尔

目前,没有比您目前正在做的更好的方法了。 使用linkingObjects可能会更快,因为可以在内部双向导航该关系,并且不需要为整个数据集评估查询,因此它也取决于其大小。 我们计划更改此行为,如问题#1508所示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM