我正在使用NSPredicate来过滤掉CoreData元素。
[predicateArray addObject:[NSPredicate predicateWithFormat:@"(SUBQUERY(properties, $x, $x.type IN %@ AND $x.val CONTAINS[cd] %@).@count > 0)", @[@"first_name",@"last_name", @"organization"], searchString]];
一般情况下,我想只返回具有类型(first_name,last_name,organization)和包含给定字符串的值的元素。我正在用它来搜索搜索模式中的联系人。
问题是当用户在带有空格的搜索字符串中键入时,我不知道处理搜索的最佳解决方案是什么,例如:
“firstName lastName”
在这种情况下,我想返回任何属性中同时包含“firstName”和“lastName”的属性。
我正在考虑为每个组件添加一个谓词:
[searchString componentsSeparatedByString:@" "]
并在它们之间建立AND,但也许有一种更简单的方法可以将数组传递给谓词,以便从中获取所有值。