predicateWithSubstitutionVariables 总是抛出异常

predicateWithSubstitutionVariables always throws exception

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

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

像这样更改您的代码,

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

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