我正在开发一个需要搜索栏的应用程序而且我是这个概念的新手,但由于我的应用程序使用Core Data运行,搜索的概念如何运作?如果有人能给我一个解释,我会非常感激。
最诚挚的问候。
答案 0 :(得分:0)
就像使用常规搜索一样(我想我从不使用没有核心数据的搜索栏)除了一些方法,你需要使用fetchResult而不是数组或其他东西..
第一
- (void)viewDidLoad
{
[super viewDidLoad];
self.searchResults = [NSMutableArray arrayWithCapacity:[[self.fetchResultsController fetchedObjects] count]];
NSError *error = nil;
if (![[self fetchResultsController]performFetch:&error])
{
NSLog(@"error!!! %@",error);
abort();
}
[self.tableView reloadData];
}
第二
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
//if([self searchResults]){
[[self searchResults]removeAllObjects];
//}
for (Books *book in [self.fetchResultsController fetchedObjects])
{
if([self searchResults])
{
NSComparisonResult result = [book.title compare:searchText
options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch)
range:NSMakeRange(0, [searchText length])];
if (result == NSOrderedSame && [self searchResults])
{
[self.searchResults addObject:book];
}
}
}
}
我认为,其他方法应该像常规搜索一样。
您可以使用本教程http://timroadley.com/2012/03/05/core-data-basics-part-7-search-bars/并查看我的git hub项目,我在这个项目中使用故事板,核心数据和搜索栏https://github.com/dennis87/bookList祝你好运。