используйте NSPredicate для фильтрации
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"self.title MATCHES %@",searchTerm];
Предположим, что ваш исходный массив - "originalArray", поэтому для получения отфильтрованного массива используйте еще две глобальные переменные
NSArray* filteredArray;
BOOL isFiltering;
Сейчас в поискеметод делегата панели выполните следующие действия:
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"self.title MATCHES %@",searchTerm];
filteredArray = [[originalArray filteredArrayUsingPredicate:predicate] retain];
}
Теперь вам нужно изменить значение параметра делегировать табличное представление и источник данных .... для всех мест, где вы используете
NSDictionary *currentString = [originalArray objectAtIndex:indexPath.row];
использовать следующие
NSDictionary *currentString;
if(isFiltering)
currentString = [originalArray objectAtIndex:indexPath.row];
else
currentString = [filteredArray objectAtIndex:indexPath.row];