Да, отправлять запрос каждый раз, когда пользователь вводит письмо, - плохая идея ... но, если, например, вы реализуете его с помощью NSOperationQueues, вы можете отменить предыдущие запросы при нажатии клавиши (любой символ или возврат) у вас будет только один запрос на сервер. Это всего лишь предложение, и, в любом случае, примите его во внимание.
Очевидно, что самый простой способ, как говорит Прашант,
@ tonio Как я понимаю, вы предполагаете, что у вас уже есть все данные в NSArray, и вы просто фильтруете результаты, анализируя их с помощью NSRange. Как сказал Картик, это огромный объем данных из веб-службы, и для его загрузки может потребоваться много времени, и это ненужный сетевой трафик. Но допустим, что именно так вы хотите это сделать. Я бы предложил отфильтровать результаты с помощью NSPredicate:
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"SELF contains[cd] %@",searchText];
NSArray *filteredResults = [arrayOfAll filteredArrayUsingPredicate: predicate];
Теперь вы используете массив FilterResults в TableView.