我让 CoreData 存储了一个对象,它的属性字段“description”之一是文本描述。eg description = @"意外造成的严重头部外伤";
我想找到 NSPedicate 可以按任何顺序搜索此列,并且按单词不精确的短语,例如:如果我搜索“意外创伤严重”,我想得到上面的字符串。
-(void)Fetch(){
.......
NSArray *words = [query componentsSeparatedByString:@" "];
req.predicate = [NSPredicate predicateWithFormat:@"description contains[cd] %@ AND description contains[cd] %@ ...",words[0],words[1],[words[2],...];
.....
//execute fetchRequest
//return NSFetchedResultsController;
}
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
[self Fetch];
[self.tableView reloadData];
}
上面的代码有点工作,但我想使用 beginwith 而不是 contains,beginswith 似乎不起作用。另外,我不知道用户可以输入多少个单词,所以很难通过 words[0], words[1]...等来形成上面的谓词。
谢谢