gpt4 book ai didi

ios - Realm linkingObjects 数组与结果

转载 作者:行者123 更新时间:2023-11-30 13:45:49 26 4
gpt4 key购买 nike

我有一个 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 可能会更快,因为可以在内部双向导航关系,并且不需要针对完整数据集评估查询,因此它还取决于数据集的大小。我们计划改变这种行为,如 issue #1508 中所示。 .

关于ios - Realm linkingObjects 数组与结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34958758/

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