Ios Swift NSPredicate不在

Ios Swift NSPredicate不在,ios,swift,nspredicate,Ios,Swift,Nspredicate,我有一个X个项目的数组,需要按uid过滤掉特定的项目。我写了以下谓词,我认为是正确的。我面临的问题是Swift编译器只允许我使用接受argumentArray的初始化器 let uids = ["34885a9f0897f8e9", "11364aca04e29be0", "c25047b10ad2a0d2"] NSPredicate(format: "NOT (uid IN %@)", argumentArray: uids) 它始终解决以下问题: NOT uid IN "18bbfd4d3

我有一个X个项目的数组,需要按uid过滤掉特定的项目。我写了以下谓词,我认为是正确的。我面临的问题是Swift编译器只允许我使用接受argumentArray的初始化器

let uids = ["34885a9f0897f8e9", "11364aca04e29be0", "c25047b10ad2a0d2"]
NSPredicate(format: "NOT (uid IN %@)", argumentArray: uids)
它始终解决以下问题:

NOT uid IN "18bbfd4d3f099297"

我知道我错过了一些明显的东西。如何构造NSPredicate,将25个项目的数组过滤为22个项目的数组,其中不包括上面列出的
UID
?我需要将这个谓词传递到一些Objective-C代码中。

不要使用
NSPredicate(格式:argumentArray:)
。第二个参数用于传递参数数组,以替换格式字符串中的多个占位符标记

只需将
uids
作为
%@

NSPredicate(format: "NOT (uid IN %@)", uids)

你能把UID显式地转换成NSArray吗?非常感谢你的回答,这对我帮助很大