Ios 如何使用不在领域内的Swift

Ios 如何使用不在领域内的Swift,ios,swift,nspredicate,realm,Ios,Swift,Nspredicate,Realm,我有一个领域对象列表(比方说用户),我想检索除“John”、“Marc”、“Al’Med”等之外的所有领域对象 我尝试了以下方法: var namesStr = "" for user in unwantedUsers { namesStr += "'" + user.name + "', " } namesStr = String(namesStr.characters.dropLast().dropLast()) let predicate = NSPredicate(format:

我有一个领域对象列表(比方说用户),我想检索除“John”、“Marc”、“Al’Med”等之外的所有领域对象

我尝试了以下方法:

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(格式:“name NOT IN{%@}”,namesStr)
,但它会崩溃(引发异常)

第二件事,我该如何在NSPredicate中转义名称。如果其中一个名称具有字符,则可能无法使用


编辑

感谢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)
根据该报告,这些方法应该有效

let predicate = NSPredicate(format: "NOT (name IN %@)", namesStr)
let predicate = NSPredicate(format: "!(name IN %@)", namesStr)
let predicate = NSPredicate(format: "NOT name IN %@", namesStr)

什么是[uiRealm.objects(Image)]?@NguyenHoan这是一个打字错误,应该是
uiRealm.objects(User)
可能重复的:“如何在Swift中不使用领域”/jkPerfect!当文件在{Lisa',Spike',Hachi}中说
名字时,我误解了它。我甚至不需要再把数组压缩成字符串了!也可以使用数组