predicateWithSubstitutionVariables总是抛出异常

时间:2015-01-07 10:26:33

标签: ios nspredicate

我正在尝试使用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 {
}.

为什么我不能用这个? (我不是在寻找替代解决方案)

1 个答案:

答案 0 :(得分:4)

更改您的代码,

NSPredicate *pSample = [NSPredicate predicateWithFormat:@"name CONTAINS [c] $variable"];
NSPredicate *actualPredicate = [pSample predicateWithSubstitutionVariables:@{@"variable":@"sample string"}];
NSLog(@"%@", [mArray filteredArrayUsingPredicate: actualPredicate]);

您创建的第一个谓词pSample是用于创建实际谓词的模板。 predicateWithSubstitutionVariables提供了您需要的实际谓词。