一旦我询问如何将1个关键字传递给多个密钥并获得此答案:Use 1 search value for multiple keywords。然后,我询问如何将密钥作为参数传递:Pass the key as param in NSPredicate
所以现在,我很好奇我是否可以反之亦然:我可以通过1个(或许多个)搜索词传递多个密钥作为参数吗?如果是,那么它会是什么样子?
有些代码供你们编辑。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(($key = 'value1')
@" OR ($key = 'value2')) "
@" AND ($key != '0') "];
predicate = [predicate predicateWithSubstitutionVariables:@{@"key": @"myProperty"}];
请注意,在谓词中,有一个(AND!=)所以我无法使用IN predicate
:
[NSPredicate predicateWithFormat:@"myProperty IN %@",
@[@"value1", @"value2", @"value3"]];
这些只是一些示例代码,所以请不要尝试修复谓词,但要注意问题:substituteVariables
带变量是过滤的关键。
答案 0 :(得分:1)
密钥必须是密钥路径表达式:
Error: near ",": syntax error
将导致谓词
[predicate predicateWithSubstitutionVariables:@{@"key": [NSExpression expressionForKeyPath:@"myProperty"]}]