Я пишу приложение для iOS, в котором есть хранилище личных записей, и ему нужно отображать списки, отсортированные определенным образом. Существует переменное количество этих порядков, и они генерируются «на лету», но я бы хотел, чтобы они хранились в хранилище данных. SQL-способ сделать это - иметь таблицу ListPositions с именем списка, идентификатором в таблице лиц и ключом сортировки. Затем, чтобы отобразить конкретный список, я могу выбрать все ListPositions списка с заданным именем, вытащить упомянутых лиц и отсортировать по ключу сортировки. Пытаюсь сделать это в CoreDatat, но сталкиваюсь с проблемами. Я пытаюсь сделать это, используя такую схему:
Person:
Name
DOB
etc...
positions -->> ListPosition
ListPosition:
listName
sortKey
person --> Person
Затем я могу получить всех лиц в данном списке с помощью NSPredicate [NSPredicate predicateWithFormat:@"ANY positions.listName like %@", someList];
. Это позволяет мне динамически добавлять списки для большого набора лиц. Проблема в том, что я не могу использовать поле sortKey ListPosition для сортировки лиц. Какой NSSortDescriptor это сделает? И если невозможно отсортировать выборку по свойству одного элемента отношения ко многим, каков еще один способ получить несколько динамических порядков в coredata? Я показываю списки с помощью NSFetchedResultsController, поэтому я не могу собрать списки самостоятельно в памяти. Мне нужно сделать это с помощью одного NSFetchRequest.