2014-11-01 47 views
0

我试图使用NSPredicate搜索Core Data以获得与NSStrings匹配的所有结果。下面的作品是用'a'查找结果的,但是如何设置NSPredicate以找到'a','b'和'c'?使用NSPredicate搜索NSStrings的范围

NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"Result == 'a'"]]; 

回答

2
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"Result == 'a' OR Result == 'b' OR Result == 'c'"]]; 

OR

编辑:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.Result IN %@",[NSArray arrayWithObjects:@"a",@"b",@"c", nil]]; 
+0

这很简单 - 谢谢。例如,是否可以设置一个包含'a','b'和'c'的数组,并将谓词设置为使用数组? – RGriffiths 2014-11-01 11:14:30

+0

检查我编辑过的答案@Richard Griffiths – Balu 2014-11-01 11:29:47

0

的另一种方式来搜索字符串使用Regular Expression。试试这个: -

NSString *yourString = @"Insert your String here"; 
NSError *error = NULL; 
NSRegularExpression *regex = [NSRegularExpression   
    regularExpressionWithPattern:@"[a|b|c]" 
    options:NSRegularExpressionCaseInasensitive 
    error:&error]; 
[regex enumerateMatchesInString:yourString options:0 range:NSMakeRange(0, [yourString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){ 
    // your code here 
}];