对于Swift 3过滤器表达式,谓词的ANY等价

时间:2017-07-20 17:04:07

标签: swift3 nspredicate

使用谓词时,我们可以:

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

ANY的使用允许我们找到名称集合中任何对象包含所需文本的firstName的任何对象。

是否有可能在Swift 3中使用过滤器表达式做类似的事情?换句话说,比如:

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

(上面的ANY语法用于说明)。

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

1 个答案:

答案 0 :(得分:1)

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