Возможно, вы захотите взглянуть на NSOperation. Попробуйте создать подкласс NSOperation и добавить его в качестве свойства класса, реализованного в файле, который вы опубликовали.
затем в - (BOOL) searchDisplayController: (UISearchDisplayController *) контроллер долженReloadTableForSearchString: (NSString *) searchString {
Вы можете установить объект с указателем на данные поиска и текст. Затем вы можете проверить, запущен ли в данный момент объект (я так думаю), и если это так, вызвать «cancel» и запустить его заново с новой строкой поиска. Возможно, есть более разумный способ, но я подозреваю, что NSOperation - хорошее место, чтобы начать искать.