2014-05-07 33 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