Поиск при вводе большого набора данных Core-Data - PullRequest
3 голосов
/ 13 апреля 2011

У меня большой набор основных данных, и я хочу добавить поддержку поиска.В настоящее время я использую полученный контроллер результатов, чтобы показать данные в uitableview.Я планирую использовать UISearchDisplayController.Теперь у меня есть два варианта:

  1. Создать новый контроллер полученных результатов для найденных данных
  2. Использовать массив для отображения фильтрованных данных

Какой подходболее подходящий / рекомендуемый (особенно для поиска по типу)?Есть ли какая-нибудь книга или учебное пособие, в которых рассматриваются способы реализации предлагаемого решения?

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

В нескольких проектах я использовал опцию «новый контроллер извлеченных результатов», потому что данные, которые я фильтровал, возможно, могли съесть всю оперативную память в старых iPhone. FRC может обрабатывать проблемы с нехваткой памяти. Этот ответ на стек может быть полезен, если вы выберете эту опцию

Являются ли ваши данные достаточно маленькими, чтобы поместиться в пригодный для использования плунжер с наименьшим общим знаменателем (iPhone 1-го поколения)? Если это так, то просто отфильтруйте память, используя NSArray. По производительности это будет быстрее, чем при использовании FRC.

1 голос
/ 13 апреля 2011

Данные постоянно записываются?У меня был набор из 1200 записей для поиска с помощью поиска «содержит».При запуске приложения у меня был объект, содержащий все наборы данных, основанные на хранилище coredata.Если данные обновляются во время использования приложения - оно перестраивает наборы.

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

Надеюсь, это поможет вам принять решение.

Приветствия,

Майкл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...