使用谓词时,我们可以有:
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) }) }