NSPredicate для NSFetchedResultsController fetchedObjects - PullRequest
0 голосов
/ 31 июля 2011

У меня есть fetchedResultsController, который отбрасывает количество User объектов.

У меня есть отношение один ко многим с моим User объектом, один User ко многим Site объектам, называемым sitesToUser.

Я пытаюсь быстро отфильтровать [fetchedResultsController fetchedObjects], выполнив:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"sitesToUser.isActive == 0"];
NSArray *filt = [[self.fetchedResultsController fetchedObjects] filteredArrayUsingPredicate:pred];

Однако массив filt никогда не возвращает никаких результатов. Кажется, не имеет значения, какой атрибут Entity я использую, он никогда не возвращает никаких результатов в фильтре.

В приведенном выше примере isActive - это BOOL, сохраненный как NSNumber. Любые идеи ....?

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

Добавление «ЛЮБОГО» в предикат действительно работает.(Хотя это не имеет особого смысла для меня) может быть, это не работает для всех случаев.Если у кого-то все еще есть проблемы, вот как я решил их в первую очередь:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"sitesToUser.isActive == %@", [NSNumber numberWithBool:YES]];

это сработало для меня до сих пор.

0 голосов
/ 31 июля 2011

Я понял это.Просто добавьте ЛЮБУЮ функцию, чтобы вернуть все объекты «Пользователь», которые соответствуют критериям:

NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY sitesToUser.isActive == 0"];

Отлично работает!

...