2012-02-16 145 views
0

我在遊戲和玩家之間有一對多的關係。遊戲與玩家之間有一種關係。核心數據 - NSPredicate和多對多關係

遊戲< - >>玩家

奧運會實體有一個叫球員的關係。 玩家有一個歸因於'訂單'

我無法使用謂詞來查詢關係。這裏是我使用的代碼:

-(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; 
} 

不知道我在做什麼錯 - 我能夠用我的整個項目爲前提的工作,但這個已經被卡住了。

+0

我認爲你不需要謂詞格式的引號。不確定是否會打斷謂詞,但值得一試。 – mvds 2012-02-16 23:36:51

+0

僅供參考,表名按照慣例是單數(即遊戲和玩家) – MGA 2012-02-16 23:43:47

+0

引用是爲了美學 - 它們不影響代碼。 – 2012-02-17 00:37:55

回答

0

看看this SO question。正如mvds所提及的,刪除%d附近的引號。

+0

謝謝,Mattieu。此代碼適用於我:NSPredicate * predicate = [NSPredicate predicateWithFormat: @「(finished ='%d')和(ANY players.order ='%d')」,0,rosterNo]; – 2012-02-17 00:52:23