Основные данные: NSP предикат с управляемыми объектами - PullRequest
0 голосов
/ 04 февраля 2012

Я создаю приложение для iOS 5 с использованием Core Data.

У меня есть две сущности Item и Category, между этими двумя сущностями существует отношение многие ко многим, то есть Itemпринадлежит ко многим категориям, а у Category есть много предметов.

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

NSEntityDescription *catEntity = [NSEntityDescription entityForName:@"Category" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = catEntity;
request.predicate = [NSPredicate predicateWithFormat:@"items IN %@",[category.items allObjects]];
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]];    
NSError *error = nil;
NSArray *categories = [context executeFetchRequest:request error:&error];

Но при выполнении этого я получаю следующую ошибку:

'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate : (items IN {<Item: 0x89b9c50> (entity: Item; id: 0x89be960 <x-coredata://A5DE0832-95F1-460C-9F40-202A10E16BDC/Item/p17> ; data: {
    attributes =     (
    );
    categories =     (
        "0x89be540 <x-coredata://A5DE0832-95F1-460C-9F40-202A10E16BDC/Category/p28>",
        "0x89be680 <x-coredata://A5DE0832-95F1-460C-9F40-202A10E16BDC/Category/p29>"
    );
    name = "Some Item";
})})'

Что я здесь не так делаю?

1 Ответ

3 голосов
/ 04 февраля 2012

Попробуйте, я не уверен, но это может сработать:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY items IN %@", [category.items allObjects]];
...