CoreData: сортировка данных с использованием связи между двумя табличными [сущностями]

#swift #core-data

#swift #core-данные

Вопрос:

Я пытаюсь отсортировать список игр на основе DisplayOrder, который является атрибутом категорий. Где категории — это имя связи между объектами GAME и GCatogory. Это объект GCategory, который имеет отношение «ко многим» к объекту Game.

Это объект Game, который представляет собой список игр, которые необходимо отсортировать на основе displayorder объекта GCategory.

Я пробовал NSSortDescriptor и NSPredicate, но я получаю следующее исключение, завершающее приложение из-за неперехваченного исключения ‘NSInvalidArgumentException’, причина: ‘ключ для многих здесь не разрешен’, завершающийся неперехваченным исключением типа NSException. Любая помощь приветствуется.

Заранее спасибо.

Комментарии:

1. Существует categories ли связь Game между сущностью и многими? Это объясняет ошибку — как CoreData может сортировать игры по порядку отображения категории, если игры имеют несколько категорий?

2. Спасибо, @pbasdf, за ваш ответ, можете ли вы предложить какой-либо обходной путь для того же, поможет ли установление отношений категорий «к одному» решить проблему?

3. Должно помочь сделать это единым. Но только если это правильно моделирует ваши данные. Вопрос в том, могут ли игры принадлежать более чем к одной категории? Если это так, вам нужно сохранить отношение «ко многим», но еще раз подумать о желаемой сортировке.