У мене є частина UISearchBar частини UISearchDisplayController, яка використовується для відображення результатів пошуку як з локальної CoreData, так і з віддаленого API. Чого я хочу досягти, це "затримка" пошуку на віддаленому API. В даний час для кожного символу, набраного користувачем, надсилається запит. Але якщо користувач набирає текст особливо швидко, немає сенсу надсилати багато запитів: це допомогло б почекати, поки він перестане вводити текст. Чи є спосіб досягти цього?
Читання документації пропонує зачекати, поки користувачі явно не натиснуть на пошук, але я не вважаю це ідеальним у моєму випадку.
Проблеми з продуктивністю. Якщо пошукові операції можуть виконуватися дуже швидко, можна оновити результати пошуку, коли користувач набирає текст, застосувавши метод searchBar: textDidChange: на об'єкті делегата. Однак, якщо операція пошуку займає більше часу, слід почекати, поки користувач натисне кнопку пошуку, перш ніж розпочинати пошук у методі searchBarSearchButtonClicked:. Завжди виконуйте операції пошуку фоновий потік, щоб уникнути блокування основного потоку. Це підтримує реагування вашого додатка на користувача під час запуску пошуку та забезпечує кращу взаємодію з користувачем.
Надсилання багатьох запитів до API не є проблемою локальної продуктивності, а лише уникнення занадто високої швидкості запитів на віддаленому сервері.
Дякую