等效于 Swift 3 过滤器表达式的谓词 ANY



使用谓词时,我们可以有:

filterPredicate = [NSPredicate predicateWithFormat:@"(ANY names.firstName contains[c] %@), nameToSearchFor];

这种ANY的使用允许我们找到任何对象,其中 names 集合中的任何对象具有包含所需文本的firstName

是否可以在 Swift 3 中使用过滤器表达式执行类似操作?换句话说,像这样:

allPeople.filter { $0.(ANY)names.firstName.contains(searchString) };

(以上 ANY 语法是为了说明而编造的(。

也许可以通过嵌套一个连接所有名字的reduce来完成,然后看看我的目标字符串是否包含在其中?

allPeople.filter { $0.names.contains(where: { $0.firstName.contains(searchString) }) }

最新更新