私がiPhoneアプリにモバイルローカル検索を実装しています:iPhoneモバイルローカル検索の最適化
- (void)searchBar:(UISearchBar *)theSearchBar textDidChange:(NSString *)searchText {
//Remove all objects first.
[copyListOfItems removeAllObjects];
if([searchText length] > 0) {
[ovController.view removeFromSuperview];
searching = YES;
letUserSelectRow = YES;
self.tableView.scrollEnabled = YES;
[self searchTableView];
}
else {
[self.tableView insertSubview:ovController.view aboveSubview:self.parentViewController.view];
searching = NO;
letUserSelectRow = NO;
self.tableView.scrollEnabled = NO;
}
[self.tableView reloadData];
}
- (void) searchTableView {
NSString *searchText = searchBar.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];
for (NSDictionary *dictionary in listOfItems)
{
NSArray *array = [dictionary objectForKey:@"key_pdescription"];
[searchArray addObjectsFromArray:array];
}
//in requirement searchArray has more than 50k objects
for (NSString *sTemp in searchArray)
{
NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (titleResultsRange.length > 0)
[copyListOfItems addObject:sTemp];
}
[searchArray release];
searchArray = nil;
}
検索があること、レコードの数百人のために正常に動作していますが、私はそれよりも50数千人以上のために実装する必要があります1文字を入力すると非常に非常に遅い私は次の文字を入力するのを待つ必要があります。 私は誰かがモバイルローカル検索のためのいくつかの最適化アルゴリズムを実装している場合、私はどのように進むか教えて欲しい。
このリンクも参照してください。http://stackoverflow.com/questions/3067543/core-data-and-paging – User97693321