2015-01-07 41 views
3

我試圖用predicateWithSubstitutionVariables篩選對象的數組,該代碼會拋出異常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 { 
}. 

爲什麼我不能用這個 ? (我不是在尋找一個替代的解決方案)

回答

4

更改代碼一樣,

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

第一斷言創建pSample是用於創建實際的謂詞的模板。 predicateWithSubstitutionVariables給出了你需要的實際謂詞。