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