gpt4 book ai didi

swift - Realm 结果按回调排序

转载 作者:行者123 更新时间:2023-11-30 12:55:21 26 4
gpt4 key购买 nike

我有一个“importData”函数,它从 API 中获取一堆 JSON 并将其填充到 Realm 数据库中。该 json 的一部分如下所示:

files: [
300,
19,
102
]

这些数字与我在获取这些之前已经处理/导入的 JSON 的顺序部分的 id 相关,并且基本上只是属于该组的文件列表。

这在我的 Realm 对象中是这样建模的:

class SomeGroup : Object {
let files = List<File>()
}

我需要保留这些 id 的排序顺序,以便当我链接文件关系时,文件的顺序正确。

为了获取我需要链接的文件模型,我运行如下查询:

let thefiles = realm.objects(File.self).filter("id IN %@", fileIds)

问题是这会以不同的顺序返回它们,并且 .sorted方法只能按模型属性排序(从我从文档中可以看出)。

我考虑循环遍历结果并将它们从 Result<File> 转变为输入基本的Array<File>List<File>输入以便我可以自己对它们进行排序,但是这会丢失 Realm 指针信息,因此我希望 Realm 无法创建链接。

唯一的另一件事是查询每个文件并将其单独附加到组文件关系中,但是如果我这样做,查询计数将会飙升。

有人可以建议我订购 Result<File> 的最佳方式吗?通过自定义函数/回调键入,以便它与 json 中的我的 id 数组匹配?

最佳答案

在 Realm 中维护一组对象的顺序的最佳实践是将它们简单地存储在 List 对象中。如果您可以调整逻辑来访问 SomeGroup 中的 files 属性,这似乎是最好的方法。

除此之外,尽管看起来很老套,您也可以考虑创建一个全新的 Realm Object 模型,其作用是简单地管理有序的文件列表。

class FileList : Object {
let files = List<File>()
}

关于swift - Realm 结果按回调排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40467206/

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