我正在尝试使用predicateWithSubstitutionVariables过滤对象数组,此代码会抛出异常
NSPredicate *pSample = [NSPredicate predicateWithFormat:@"name CONTAINS [c] $variable"];
[pSample predicateWithSubstitutionVariables:@{@"variable":@"sample string"}];
NSLog(@"%@", [mArray filteredArrayUsingPredicate:pSample]);
我得到例外:
reason: 'Can't get value for 'variable' in bindings {
}.
为什么我不能用这个? (我不是在寻找替代解决方案)
答案 0 :(得分:4)
更改您的代码,
NSPredicate *pSample = [NSPredicate predicateWithFormat:@"name CONTAINS [c] $variable"];
NSPredicate *actualPredicate = [pSample predicateWithSubstitutionVariables:@{@"variable":@"sample string"}];
NSLog(@"%@", [mArray filteredArrayUsingPredicate: actualPredicate]);
您创建的第一个谓词pSample
是用于创建实际谓词的模板。 predicateWithSubstitutionVariables
提供了您需要的实际谓词。