Использовать порядок сортировки с сервера в CoreData и передать NSFetchedResultsController без свойства для сортировки по

Мне нужно найти способ сохранить порядок сортировки, заданный сервером, при использовании fetchedresultscontroller, даже если параметр, используемый для сортировки на сервере, не возвращается с данными.

Каждый набор объектов может быть отсортирован различными способами, который возвращается как json в массиве с правильным порядком сортировки.

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

Целевая версия iOS - 6.1-7.0.

Мой предикат запроса на получение:

fetchRequest.predicate = [NSPredicate predicateWithFormat:@"SELF in %@.items", itemList]; где предметы @property (nonatomic, retain) NSOrderedSet *items; поэтому предикат явно относится к упорядоченному набору.

Есть ли лучшие предикаты и дескрипторы сортировки для работы с упорядоченными множествами?

Есть ли лучшие способы структурировать мою модель?

Спасибо!

1 ответ

Решение

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

Я предлагаю ввести position приписать свою сущность или сущности, которые должны быть в определенном порядке. Вы можете сохранить это в момент поступления данных. Остальное - тривиально.

Другие вопросы по тегам