NSPredicate使用特殊字符过滤

时间:2012-04-17 06:11:44

标签: iphone ios cocoa-touch cocoa nspredicate

我使用下面的代码使用谓词过滤数组。

self.aPredicateString = [self.aPredicateString stringByAppendingString:[NSString stringWithFormat:@"%@ contains[cd] '%@'", self.selectedSearchParameter, self.searchString]];


NSLog(@"Predicate string %@",self.aPredicateString);
        self.aPredicate = [NSPredicate predicateWithFormat:self.aPredicateString];

如果用户输入\',则代码会因错误而崩溃。

我不明白错误是什么? NSPredicate中不允许使用特殊字符,或者我应该以不同的方式格式化谓词。

1 个答案:

答案 0 :(得分:6)

我想知道,为什么你要使用所有这些self.aPredicateString stringByAppendingString,但我认为,你的谓词应该是这样的:

self.aPredicate = [NSPredicate predicateWithFormat:@"%@ contains[cd] %@", self.selectedSearchParameter, self.searchString]]; 

''

周围没有%@