3 distinct realm nspredicate swift
让我解释一下原因标题可能有点令人困惑.
假设我有类型电影的领域对象:
Movie1(id: 0, genre: "horror")
Movie2(id: 1, genre: "horror")
Movie3(id: 3, genre: "sci-fi")
Run Code Online (Sandbox Code Playgroud)
我需要做的是获得每个类型的第一个(在这种情况下Movie1和Movie3)
我只想使用realm+ 来做w/o循环NSPredicate,所以性能更好,但我有点卡在那里......
到目前为止,我得到的是:
Realm().objects(Movie.self).sorted(byKeyPath: id, ascending: true)
.value(forKeyPath: "@distinctUnionOfObjects.genre")
Run Code Online (Sandbox Code Playgroud)
这将返回一个数组,("horror", "sci-fi")我无法确定下一步应该是什么.如果我尝试做一个:
.filter("genre IN %@", arrayWithDistinctGenres)
Run Code Online (Sandbox Code Playgroud)
它会把我所有的物品归还给我.
可能它很简单,但我无法想象如何做到这一点.
任何帮助表示赞赏.
Tho*_*yne 14
从Realm Swift 3.1开始,您可以使用在不同操作之前应用的排序顺序let movies = realm.objects(Movie.self).sorted(by: ["id", true]).distinct(by: ["genre"])选择Movie每个类型的第一个.
| 归档时间: |
|
| 查看次数: |
4080 次 |
| 最近记录: |