Сортировать сущность по подзапросу - NSSortdescriptor - PullRequest
1 голос
/ 03 мая 2011

У меня есть 3 основных объекта данных:

Объект A и Объект B и Пользователь, которые связаны как

Объект A <------ >> Объект B << ----> Пользователь

Я хочу отсортировать записи в объекте A по количеству записей в объекте B для этого конкретного пользователя.

Я мог бы сделать это:

  • получить все записи объекта A
  • Для каждой записи - получить количество записей объекта B для этой записи и для текущего пользователя
  • Подсчитать количество записей для этого хранилища записей сущности А, а затем отсортировать.

Хотя это кажется ужасно глупым.

Есть ли в любом случае, я мог бы сортировать сущность Ас NSSortDescriptor, возможно, с помощью подзапроса?Или, если вы знаете какой-то другой способ, я должен решить это?

1 Ответ

1 голос
/ 03 мая 2011

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

Самое простое решение - добавить временный атрибут, скажем, bCount, к EntityA. Затем метод getter возвращает количество связанных EntityB объектов:

-(NSNumber *) bCount{
  return [NSNumber numberWithInt:[self.bs count]];
}

Затем сортируйте ваши EntityA объекты по клавише bCount.

...