如何通过在UISearchbar中包含单词来过滤句子

时间:2014-10-13 07:06:39

标签: ios objective-c uisearchbar nspredicate

我有一个对象数组。 对象主体是一个句子,我想用这个句子的单词过滤我的UITableView

例如,我必须对象:

Id:1; 身体:"你好亲爱的朋友&#34 ;;

Id:2; 身体:"佛罗多,给我戒指!";

如果我开始进入" Fr" UISearchControler必须返回两个对象,因为它们都包含以" Fr"开头的单词。 ("佛罗多,朋友")。然后,如果我进入" Fro"它将返回第二个对象。

现在,我将消息拆分为单词数组,并使用

过滤它们
@"self.body contains[c]%@", searchString 

谓词。

我如何组合contains和beginwith谓词?

2 个答案:

答案 0 :(得分:1)

您可以在 SearchBar代理方法

中编写此代码
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText   
{ 
 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains%@",searchTxt.uppercaseString];
   NSArray* FilteredArr = [objTableData filteredArrayUsingPredicate:predicate];

}

还要注意案例(小写和大写)

答案 1 :(得分:0)

下面的代码示例:

 NSArray* words =  [body componentsSeparatedByString:@" "];

 NSArray* seacrhedWords = [words filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self BEGINSWITH[c] %@", seacrhText]];