我正在使用下面的代码来使用谓词过滤数组。
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 中不允许使用特殊字符,或者我应该以不同的方式格式化谓词。
最佳答案
我想知道,为什么你使用所有这些self.aPredicateString stringByAppendingString
,但我认为,你的谓词应该如下所示:
self.aPredicate = [NSPredicate predicateWithFormat:@"%@ contains[cd] %@", self.selectedSearchParameter, self.searchString]];
%@
周围没有 ''
关于iphone - NSPredicate 使用特殊字符过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10186049/