搜索栏与coredata

时间:2012-02-01 18:05:04

标签: iphone objective-c ios xcode

我正在开发一个需要搜索栏的应用程序而且我是这个概念的新手,但由于我的应用程序使用Core Data运行,搜索的概念如何运作?如果有人能给我一个解释,我会非常感激。

最诚挚的问候。

1 个答案:

答案 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祝你好运。