Как эффективно определять ввод текста в интерфейсе пользователя, чтобы вызывать API мест Google?
Каков наилучший способ обнаружить пользовательский ввод в поле UItext для вызова API мест для предложений в качестве типа пользователя? В настоящее время, как я это сделал, после 3 букв я вызываю API мест для каждого ввода букв. Но если пользователь набирает от 4 до 5 букв, происходит очень быстрое завершение работы приложения, возможно, из-за слишком большой сети или чего-то еще.
Возьмите пример приложения Google Maps или Google Search App в IOS. Как они решают, в какой момент вызвать API, чтобы показать результаты предложения? Иногда пользователь печатает очень быстро, иногда буквально.
Прошу прощения, если мой вопрос глупый.
2 ответа
Трудно быть уверенным, не увидев ваш код, но я подозреваю, что сбои вызваны обновлением элементов управления пользовательским интерфейсом в не-пользовательских потоках.
Как вы обнаружили, есть тонкости в том, чтобы делать запросы, когда пользователь вводит (слишком много запросов, запросы возвращаются не по порядку и т. Д.). Подумайте об использовании класса GMSAutocompleteFetcher из Google Places iOS SDK, который автоматически решает эти проблемы.
Обратитесь к этой опции от Google https://developers.google.com/places/ios-api/autocomplete. Я не пробовал, может быть, это может помочь.