Как посчитать размер списка родительской сущности в NSFetchedResultsController - PullRequest
1 голос
/ 06 августа 2010

Я использую NSFetchedResultsController и у меня проблема с запросом количества в родительском атрибуте.

Предполагая, что следующая модель данных, 'Группа', 'Категория', 'Элемент'.
- Предмет: все предметы относятся к ‘категории’
- Категория: «Категория» может принадлежать определенной «Группе»
- Группа: «Группа» имеет ноль до N «Категория»

И я хочу найти все элементы, которые не имеют групп в категории.
Мои коды следующие:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Item" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
...
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"((category.groups.@count == 0) || category.categoryId == %@)", categoryId];
...

Но "category.groups. @ Count" здесь не работает. (Хорошо работает из NSFetchedRequest)
Как я могу решить эту проблему. Пожалуйста, помогите мне ;;

Спасибо.

Ответы [ 2 ]

1 голос
/ 06 августа 2010

Отношение также может быть ноль.

(((category.groups.@count == 0) || category.groups == nil) || category.categoryId == %@)

Разрешение кода внутри предиката при работе с бэкэндом SQLite может отличаться от того, что вы ожидаете внутри Objective-C напрямую.Когда вы сталкиваетесь с такими странными вещами, может быть полезно включить отладку SQL, чтобы увидеть, что является базовым SQL, и соответствующим образом скорректировать свои предикаты.

0 голосов
/ 06 августа 2010

Вы открываете 2 скобки и закрываете только одну:

...@"((category.groups.@count == 0) || category.categoryId == %@"...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...