запрос строки пользовательского поиска в iPhone

#iphone #uisearchbar

#iPhone #панель пользовательского поиска

Вопрос:

Я создаю приложение для карты, и я уже могу вызывать веб-сервис, который показывает местоположение магазинов на карте с аннотацией. Мой веб-сервис содержит более 200 магазинов в Австралии. Я беру одну строку пользовательского поиска, в которую при вставке Syd ….. затем должен открыться вид tableview с автозаполнением адресов в Сиднее, Австралия. Как я могу этого добиться.. Нужно ли мне снова вызывать URL веб-службы для автозаполнения адреса в tablview, или я должен вставить адрес вручную или есть какой-либо метод???

Отредактировано: = В моем приложении я ищу местоположение магазинов в радиусе 5,10,15 км. И если пользователь хочет другое местоположение вместо текущего местоположения, он может вставить любое свое местоположение, чтобы найти информацию о магазинах вокруг этого вставленного местоположения. Итак, когда пользователь вводит свое местоположение, должен открыться tableview с автозаполнением адреса

Ответ №1:

Одним из возможных решений может быть сохранение предопределенных значений в базе данных (Core Data), а затем с помощью делегата textDidChange панели поиска вы можете запросить базу данных для поиска списка, если данные соответствуют текущему ключевому слову serach. Полученные таким образом результаты могут быть показаны в виде таблицы с некоторым эффектом анимации, чтобы создать ощущение автоматического предложения.

Вызов веб-сервиса в textDidChange заблокирует пользовательский интерфейс и не будет хорошим вариантом для продолжения. хотя эта функция более распространена в Интернете, но на устройстве я нахожу первый вариант более продуктивным, чем второй.

РЕДАКТИРОВАТЬ: Ответ на проблему, задаваемую в редактируемой части вопроса

  1. Вам нужно установить автоматическое предложение.
  2. Извлекать данные с сервера (используя веб-сервис).

Теперь, чтобы обеспечить функциональность предложения адреса, например, «Syd», превращающегося в Сидней, Австралия, мой приведенный выше ответ поможет вам поместить эти статические адреса в базу данных, а затем предоставить пользователю параметры автоматического предложения. Для второй части вы можете сохранить широту / длину мест в базе данных, и как только пользователь завершит свой выбор, вы можете запросить веб-сервис, чтобы получить вам данные.

Шаги можно резюмировать следующим образом..

  • Пользователь вводит Syd.
  • Вы запрашиваете базу данных для поиска места, соответствующего Syd, используя некоторый запрос, такой как place LIKE %syd%.
  • Заполните таблицу с помощью автозаполнения, указав название места, например, Сидней, Австралия.
  • Пользователь выбирает место, соответственно, вы выбираете широту / длину (выбирается вместе с именами в приведенном выше запросе) и запрашиваете ваш веб-сервис для получения данных для

Место = Сидней, Австралия (на самом деле не обязательно) Широта = НЕКОТОРАЯ ДОЛИНА для долготы Сиднея — НЕКОТОРОЕ ЗНАЧЕНИЕ для радиуса Сиднея = 5,10,15 в зависимости от логики вашего приложения

Затем сервер предоставит вам все магазины в заданном диапазоне для определенной широты / длины.

На стороне сервера может выполняться более интенсивная работа с вычислениями, а на стороне клиента следует выполнять меньше вызовов веб-служб, чтобы избежать задержек.

Ответ №2:

У меня было то же приложение, которое показывало адреса пользователей, поэтому я использовал веб-сервис, который выдавал мне все адреса, и я сохранял их в NSMutableArray, а затем я проверял строку в массиве в функции textDidChange UISearchBar, и если есть какая-либо строка, соответствующая префиксу, тогда я показывал адрес в UISearchBar…Но в этом случае, если вы указали только ‘S’, то он вернет более одной записи, поэтому вам нужно решить в соответствии с требованиями клиента, как показывать, хочет ли он список или любую соответствующую запись…Если ожидается, что список будет отображаться, вам нужно отобразить tableview, а когда пользователь выберет значение, просто скройте tableview…..

Комментарии:

1. В моем приложении я ищу местоположение магазинов в радиусе 5,10,15 км. И если пользователь хочет другое местоположение вместо текущего местоположения, он может вставить любое свое местоположение, чтобы найти информацию о магазинах вокруг этого вставленного местоположения. Итак, когда пользователь вводит свое местоположение, должен открыться tableview с автозаполнением адреса……

2. Создайте веб-сервис таким образом, чтобы он принимал ваше текущее местоположение, установленное пользователем, передавал его ширину, долготу и близость (5 км / 10 км) и получал данные…

3. прямо сейчас я нахожусь в Мумбаи и устанавливаю радиус 8000 км, я могу получить местоположение магазинов в Австралии одной кнопкой из текущего местоположения в Мумбаи. Теперь я хочу вставить местоположение sydney в панель пользовательского поиска, которая откроет автозаполнение аналогичного адреса sydney в tableview. При выборе этого местоположения я хочу выполнить поиск по магазинам в окрестностях Сиднея…….