Использовать порядок сортировки с сервера в 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
приписать свою сущность или сущности, которые должны быть в определенном порядке. Вы можете сохранить это в момент поступления данных. Остальное - тривиально.