Я понятия не имею, как комбинировать предикат на основе пользовательского выбора. Вот обзор моих данных.RealmSwift + множественный предикат
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 здесь ... – Shripada
, но если мы не знаем, что пользователь будет выбирать, как мы их объединяем? – Delonn
Идея состоит в том, чтобы иметь столько подвыражений, сколько есть вариантов. И в зависимости от выбранной опции составьте окончательный запрос, используя OR. См. Подсказку. – Shripada