3
我一直在这个问题上停留了一段时间,并且尽力找出解决方案。使用NDSredicate搜索NSFetchedResultsController
我正在使用核心数据,并且对于iOS编码相对来说比较新,所以我在查找如何搜索我的fetchedResultsController以筛选出用户输入到searchBar的字符串时遇到了一些麻烦。
我知道如何从searchBar获取字符串以及如何调用我的fetchResultsController方法。但是我正在努力的是如何使用NSPredicate来仅将使用核心数据存储的行与在searchBar中输入的行进行匹配。 (NSFetchedResultsController *)fetchedResultsController
(我切换按字母顺序排序只是为了显示自己,它的工作) -
目前我在做这个。
if (!isSearching) {
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"LabelValue" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];
}
else {
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"LabelValue" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
NSLog(@"%@", searchBar.text);
/*NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY contains[cd] %@", searchBar.text];
[fetchRequest setPredicate:predicate];*/
[fetchRequest setSortDescriptors:sortDescriptors];
[sortDescriptor release];
[sortDescriptors release];
}
我不太明白如何使用谓词来过滤我的数据。注释掉的代码会导致NSException时未注释:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "ANY contains[cd] %@"'
这可能是一个非常简单的解决办法,但我会任何帮助,您能提供非常感激。由于
谢谢,这工作出色 - 知道这将是简单的! – sburnstone 2011-04-12 09:52:17