У меня есть текстовое поле, которое извлекает данные из API каждый раз, когда текст textField изменяется, и обновляет таблицу.
override func viewDidLoad() {
super.viewDidLoad()
searchTextField.addTarget(self, action: #selector(textFieldDidChange), for: UIControlEvents.editingChanged)
}
func textFieldDidChange() {
let queryString = self.searchTextField.text
SearchWSFacade.getSearchResults(queryString: queryString) {
(error) in
if (error == nil) {
self.tableView.reloadData()
}
}
}
Это прекрасно работает, только если пользователь вводит медленно (позволяет загружать данные перед вводом следующего символа). Если пользователь печатает быстро, мы сталкиваемся с проблемами из-за нескольких вызовов reloadData.
Это можно было бы решить, если бы я отменил обработчик завершения при поиске, когда выполняется предыдущий поиск. Как мне это сделать? Или есть решение получше?