У меня есть список объектов Realm (скажем, User), и я хочу получить все из них, кроме «John», «Marc», «Al 'Med» и т. Д.Как использовать NOT IN с Realm Swift
Я попытался следующие:
var namesStr = ""
for user in unwantedUsers {
namesStr += "'" + user.name + "', "
}
namesStr = String(namesStr.characters.dropLast().dropLast())
let predicate = NSPredicate(format: "NOT name IN {%@}", namesStr)
let remainingUsers = uiRealm.objects(User).filter(predicate)
Я также попытался с NSPredicate(format: "name NOT IN {%@}", namesStr)
но врезаться бы (поднял исключение).
И Вторая вещь, как я могу избежать названий в NSPredicate. Если одно из имен имеет символ ', это, вероятно, не сработает.
EDIT
Благодаря LE SANG, вот функциональный результат:
var userArr: [String] = []
for user in unwantedUser {
userArr.append(user.name)
}
let predicate = NSPredicate(format: "NOT name IN %@", userArr)
let remainingUsers = uiRealm.objects(User).filter(predicate)
, что ' s [uiRealm. объекты (изображение)]? –
@NguyenHoan Это опечатка, должна быть 'uiRealm.objects (Пользователь)' – Kalzem
Возможный дубликат: «Как НЕ использовать Королевство в Swift»/jk –