0

私のプログラムには、2 つの関連するテーブルを持つ sqlite データベースがあります。1つは「ランク」と呼ばれ、もう1つは「要件」と呼ばれます

「ランク」テーブルの特定の行と関係がある「要件」テーブルからすべての行をフェッチしたい。以下は私のコードです。テーブル全体を取得しますが、上記のルールに従ってのみ指定された行を取得します。

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

1 に答える 1

1

コアデータで関係をモデル化する場合は、関係プロパティからリンクされたオブジェクトを取得するだけです。別のフェッチ要求は必要ありません。rank.requirements必要なものすべてのNSSetを提供します。(ここでは、オブジェクトとプロパティの名前を想定しています)。

于 2012-09-06T06:48:11.553 に答える