两个相关表的ios NSFetchRequest

时间:2012-09-06 06:30:18

标签: ios sqlite core-data

我的程序有一个带有两个相关表的sqlite数据库。一个名为“Rank”,另一个名为“Requirement”

我想从“需求”表中获取与“排名”表中的特定行有关系的所有行。以下是我的代码,它抓取整个表,但我只根据上面提到的规则得到指定的行。

-(NSArray *) getAllRequirementsForTheRank:(Rank *) rank
{
    NSError *error;

    NSFetchRequest *fetchRequest = [[[NSFetchRequest alloc] init]autorelease];

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Requirement" inManagedObjectContext:self.context];   

    [fetchRequest setEntity:entity];

    NSPredicate *searchType = [NSPredicate predicateWithFormat:@"Rank = %@", rank];

    [fetchRequest setPredicate:searchType];


    NSArray *scoutRequirementArray  = [self.context executeFetchRequest:fetchRequest error:&error]; 

    for (Requirement *r in scoutRequirementArray)
    {
        NSLog(@"Requirementttt : %@ :", r.requirementName);
    }

    return scoutRequirementArray;       
}

1 个答案:

答案 0 :(得分:1)

如果您在核心数据中建模关系,只需从关系属性中获取链接对象。您不需要其他获取请求。 rank.requirements将为您提供所需的一切NSSet。 (我在这里假设您的对象和属性的名称)。