【发布时间】:2015-12-07 11:37:23
【问题描述】:
我不知道如何根据用户选择组合谓词。这是我的数据概览。
Person.swift
class Person: Object {
let id = RealmOptional<Int>()
dynamic var name = ""
dynamic var console = ""
override static func primaryKey() -> String {
return "id"
}
示例 json 数据
{
"id": 822,
"name": "Ron",
"console": "XBox"
},
{
"id": 823,
"name": "Jenny"
"console": "Playstation 4"
}
例如,我有很多数据,控制台由“XBox”、“Playstation 4”、“Wii”、“Sega”或“PS Vita”组成。我创建了一个复选框过滤选项,以允许用户选择他们想要过滤的选项并显示拥有哪个控制台的人的姓名。
例如,如果他们同时选择“XBox”和“Playstation 4”,我如何同时预测它们并显示人名的结果?目前我只能显示一个这样的选项。
var player: Results<Person>!
func filter(sender: AnyObject) {
let realm = try! Realm()
self.player = realm.objects(Person).filter("%K = %@", "console", "XBox")
}
【问题讨论】:
-
您需要在这里使用 OR 在查询中创建复合语句...
-
但是如果我们不知道用户会选择什么,我们该如何组合它们呢?
-
这个想法是拥有与选项一样多的子表达式。并根据所选选项使用 OR 复合最终查询。请参阅指导答案。
标签: swift filter realm predicate