У меня есть довольно большой массив, который я получаю из своей базы данных peopleArray
, которая состоит из всех пользователей моего приложения. Этот массив используется для поиска друзей. Моя проблема заключается в том, что когда пользователь начинает вводить строку поиска, приложение часто замерзает на мгновение, прежде чем отобразит поиск пользователя.Выполнять поиск по массиву в фоновом режиме?
#pragma mark - SEARCH BAR
- (void) filterContententForSearchText: (NSString *) searchText scope:(NSString *) scope{
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K beginsWith[cd] %@",@"Name", searchText ];
self.searchArray = [self.peopleArray filteredArrayUsingPredicate:predicate];
}
- (BOOL) searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{
[self filterContententForSearchText:searchString scope:[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
return YES;
}
- (void) searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller{
[self.tableView reloadData];
}
Я хотел бы сделать это в фоновом режиме, так что я могу поставить в Tableview в UIActivityIndicator
, как он загружает, но не уверен, где и как реализовать этот способ в фоновом режиме.