2014-05-07 34 views
15

我不知道是否有人能够提供帮助。我正在尝试使用SearchBar在Parse类中搜索一个术语。然而,containsString区分大小写,我希望它不区分大小写。请参阅下面的代码;查询解析containsString不敏感

-(void)filterResults:(NSString *)searchTerm { 

[self.searchResults removeAllObjects]; 
PFQuery *query = [PFQuery queryWithClassName: @"Firefacts"]; 
[query whereKeyExists:@"Number"]; 
[query whereKey:@"Number" containsString:searchTerm]; 
NSArray *results = [query findObjects]; 
[self.searchResults addObjectsFromArray:results]; 
} 

任何帮助将不胜感激。

回答

29

改为使用正则表达式(?i)!归功于https://stackoverflow.com/a/9655203/2398886https://stackoverflow.com/a/9655186/2398886http://www.regular-expressions.info/modifiers.html

所以更换

[query whereKey:@"Number" containsString:searchTerm]; 

[query whereKey:@"Number" matchesRegex:[NSString stringWithFormat:@"(?i)%@",searchTerm]]; 

,或者您也可以使用

[query whereKey:@"Number" matchesRegex:searchTerm modifiers:@"i"]; 

你的最终代码应该是:

PFQuery *query = [PFQuery queryWithClassName: @"Firefacts"]; 
[query whereKeyExists:@"Number"]; 
[query whereKey:@"Number" matchesRegex:searchTerm modifiers:@"i"]; 
+3

伟大的答案和作品一个治疗,非常感谢你:-) – user3611162

+2

不错!与太快完美地合作:D干得好! – user3369214

+0

我一直在使用它,它的工作原理。但是如果我想得到一个精确的词匹配,但也使用不区分大小写的正则表达式呢? – D34thSt4lker