Основные данные, метод "сортировка по временному свойству"

Скажем, у меня есть объект Core Data, называемый Event, который представляет повторяющиеся (ежегодные) события. Каждое событие имеет свойство "date".

Мне нужно представить эти события пользователю, отсортированному по "следующему вводу даты". Это свойство, конечно, зависит от текущей даты и как таковое должно быть отмечено как переходный: нет смысла хранить его в базе данных.

Но, как вы знаете, вы не можете запросить сортировку с помощью свойства переходного процесса в Core Data.

Есть ли разумный способ сохранить это свойство временным и все еще иметь сортировку данных Core для меня? Я не хочу получать, а затем сортировать себя, но я также хотел бы избежать сохранения этой временной информации в базе данных.

Ответ 1

Если вы храните дату в отдельном объекте, вы можете получить только даты и отсортировать их самостоятельно, как вам нравится. У вас были бы отношения от Event to EventDate и соответствующие обратные отношения, которые позволят вам найти событие из данного EventDate.

Предложение: укажите дескриптор сортировки в запросе выборки, чтобы получить даты, отсортированные с начала года. Затем все, что вам нужно сделать, это найти текущую дату в возвращаемом массиве и переместить все до этой точки в конец массива.

Сопоставьте событие EventDate- > Event со многими, поскольку может случиться, что на одну дату выпадает более одного события. Настройка вашей модели таким образом дает вам приятное свойство, на которое вы можете легко ответить на вопрос "Какие события происходят в дату X?"