2012-02-16 7 views
0

У меня есть отношения «один-много» между игроками и игроками. Есть отношения на Играх с Игроками, называемыми игроками.Основные данные - отношение NSPredicate и to-many

< Игры - >> Игроки

Игр компания имеет отношения с именем игрока. Игроки имеют атрибут «заказ»

Я не могу использовать предикат для запроса отношения. Вот код, я использую:

-(NSArray *)returnPlayerLastAtBat: (int)rosterNo 
    { 
     NSError *error; 

     NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
     NSEntityDescription *entity = [NSEntityDescription 
             entityForName:@"Games" inManagedObjectContext:managedObjectContext]; 
     NSPredicate *predicate = [NSPredicate predicateWithFormat: 
            @"(finished = '%d') and (players.order = '%d')",0,rosterNo]; 
     [fetchRequest setEntity:entity]; 
     [fetchRequest setPredicate:predicate]; 

     NSArray* result = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 
     [fetchRequest release]; 

return result; 
} 

Не уверен, что я делаю wrong- я могу работать с моим основываются на протяжении Проект-, но это один застряли.

+0

Я думаю, что вам не нужны кавычки в предикатном формате. Не уверен, что он сломает предикат, но стоит попробовать. – mvds

+0

Just FYI, имена таблиц являются исключительными по соглашению (например, игра и плеер) – MGA

+0

Кавычки были для эстетики - они не влияют на код. –

ответ

0

Посмотрите на this SO question. И, как упоминалось mvds, удалите котировки вокруг% d.

+0

Спасибо, Mattieu. Этот код работал для меня: NSPredicate * predicate = [NSPredicate predicateWithFormat: @ "(finished = '% d') и (ANY players.order = '% d')", 0, rosterNo]; –