2009-05-13 2 views
0

Я делаю приложение Core Data для iPhone, но надеюсь, что этот вопрос будет достаточно для Mac OS X, на который будет дан ответ в этом контексте без проблем с NDA.Последние поисковые запросы с базовыми данными

Когда пользователь выполняет поиск, я сохраняю каждый результат в контексте, используя запись объекта. Я хочу, чтобы эти результаты были восстановлены позже в разделе «Недавние поиски». Каков наилучший способ сделать это?

Один из способов, который я рассматриваю, - это добавить еще один объект с именем History с атрибутом Entry, связанным с этим. Первые результаты поиска имели бы Entry.history_id = 1, у вторых - Entry.history_id = 2 и т. Д. Затем Recent Searches будет выбирать объекты Entity с данным идентификатором истории.

ответ

0

Если вы хотите упорядоченный список поисковых запросов, то вы правы: вам придется вручную управлять некоторым свойством, которое определяет порядок. history_id вы даете одну возможность. Я бы, вероятно, использовал атрибут date, который устанавливается при вставке экземпляра объекта. Затем вы можете заказать свою выборку с помощью свойства date. Для хранения фактического поиска я часто сериализую экземпляр NSPredicate для запроса в качестве свойства данных (обрабатывая сериализацию/десериализацию самостоятельно) или в трансформируемое (используя свойство NSUnarchiveFromData transfer по умолчанию).

+0

Одно из преимуществ объекта «История» - сохранить заголовок для обозначения набора результатов поиска (не было первоначального требования). Мне нравится идея данных для сортировки и архивирования NSPredicate для последующего поиска. – baalexander

+0

Да, это все в объекте History: имя (String), дата (Date), предикат (Transformable). –

Смежные вопросы