2012-02-16 42 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