gpt4 book ai didi

swift - 过滤 Realm 对象以仅按属性获取一个(不同的)对象

转载 作者:行者123 更新时间:2023-11-30 10:54:33 25 4
gpt4 key购买 nike

让我解释一下第一个原因,标题可能有点令人困惑。

假设我有一个 Movie 类型的 Realm 对象:

Movie1(id: 0, genre: "horror")

Movie2(id: 1, genre: "horror")

Movie3(id: 3, genre: "sci-fi")

我需要做的是获得每种类型的第一个(在本例中为 Movie1Movie3)

我想只使用realm + NSPredicate来实现不循环,因此性能更好,但我有点卡在那里.. .

到目前为止我得到的是这样的:

Realm().objects(Movie.self).sorted(byKeyPath: id, ascending: true)
.value(forKeyPath: "@distinctUnionOfObjects.genre")

这会返回一个带有 ("horror", "sci-fi") 的数组,我真的不知道下一步应该是什么。如果我尝试做:

 .filter("genre IN %@", arrayWithDistinctGenres) 

它将返回我所有的对象。

可能很简单,但我不知道该怎么做。

感谢任何帮助。

最佳答案

从 Realm Swift 3.1 开始,您可以执行 let movie =realm.objects(Movie.self).sorted(by: ["id", true]).distinct(by: ["genre"]),它将使用不同操作之前应用的排序顺序选择每种类型的第一部电影

关于swift - 过滤 Realm 对象以仅按属性获取一个(不同的)对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54106932/

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