Основываясь на опубликованном вами коде, я вижу, что вы создаете новый FetchedResultsController каждый раз, когда пользователь изменяет строку поиска.Это означает, что это не создание FRC, которое вызывает задержку.
Запускаете ли вы поисковый запрос на основной теме?Это может быть одной из причин отставания.И это также может объяснить, что первый запрос отстает больше, чем последующие.Это может быть связано с тем, что запрос выполняется быстрее, так как строка поиска становится длиннее, а возможные результаты сужаются (и требуют меньшего времени обработки).
Id предлагает вам реализовать решение, которое ждет 0,1-0,3 секунды после каждого нажатия клавишиперед выполнением поиска.Это уменьшает ненужные поисковые запросы, поскольку пользователь вводит более длинные запросы.И я бы посоветовал вам выполнить поиск в отдельном потоке, чтобы избежать блокировки графического интерфейса во время поиска.Когда поиск завершен, вы выполняете обратный вызов основной темы и обновляете экран с результатами.