Построение автозаполнения на основе истории поисковых запросов в прошлом - PullRequest
0 голосов
/ 07 сентября 2011

Так что я работаю над поиском в iOS, где мне нужно реализовать поиск по ключевым словам.Я использовал собственный контроллер представления со встроенным в него объектом Search Display Controller.То, что я хочу сделать, это иметь возможность хранить условия поиска где-нибудь, когда нажата кнопка поиска.Я подумал о двух способах:

  1. сохранять их локально на устройстве и запрашивать их всякий раз, когда выполняется поисквыполнять запрос GET к веб-приложению всякий раз, когда выполняется поиск

Второй вариант, который я знаю, но не знаю, как сделать первый.

ТАК, как я могу хранить условия поиска локально?Кроме того, что было бы лучшим вариантом?Первый, второй или другой?

РЕДАКТИРОВАТЬ : Удаленный API хранит данные, которые я запрашиваю.Я хочу имитировать функциональность приложения поиска Google, в котором оно хранит от 10 до 20 ключевых слов, которые ищет пользователь.

Заранее спасибо!

1 Ответ

1 голос
/ 07 сентября 2011

Трудно рекомендовать с большим пониманием данных и использования.Например, количество ключевых слов?список ключевых слов статичен или растет?поделились ключевыми словами?что вы ищете - локальный или удаленный?

РЕДАКТИРОВАТЬ: Вы уточнили 10 - 20 строк.В этом случае рассмотрите что-нибудь простое, например - [NSArray writeToFile: atomically:] и просто сохраните в файле.Если вы читаете и пишете в NSArray, вы можете очень быстро работать с ними в памяти.

Оригинал:

Если вы храните локально и это растущий динамический набор ключевых слов, я бы порекомендовал CoreData илиSqlite напрямую.Sqlite - это очень быстрая и эффективная локальная БД.Если вы делаете sqlite, проверьте fmdb на github.Это оболочка объектива-c.

Относительно плюсов и минусов:

  1. Локальное хранилище будет быстрее - у вас не будет задержки в сети.Особенно, если вы хотите выполнять опережающие запросы при нажатии клавиш.Хранение в памяти еще быстрее.
  2. Подумайте, сколько данных вы храните.Сколько ключевых слов там?Можно ли хранить на устройстве в БД или файле?
  3. Хотите ли вы, чтобы ключевые слова передавались нескольким пользователям?В этом случае требуется либо сохранение на сервере, либо сочетание хранения на сервере и синхронизации с устройством.
  4. Увеличиваются ли ключевые слова со временем в зависимости от использования?В этом случае лучше использовать локальную базу данных.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...