2011-04-27 9 views
0

YourNameVariableには何を使用するのかよく分かりません。私はそれがルーチンのインスタンス(または、おそらくルーチンの名前プロパティ)である必要があると思うが、これをどのように作成するのだろうか?私はUITableViewを使用しています。ここでフェッチ条件を設定するためのヘルプが必要

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Exercise" inManagedObjectContext:managedObjectContext]; 
[request setEntity:entity]; 

[request setPredicate: [NSPredicate predicateWithFormat: @"routineExercises = %@", yourVariableNameHere]]; 

NSLog(@"After managedObjectContext: %@", managedObjectContext); 

NSError *error = nil; 
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 
if (mutableFetchResults == nil) { 
    // Handle the error. 
} 
[mutableFetchResults release]; 
[request release]; 

は私のデータモデルである: enter image description here

そしてまた、私は、のviewDidLoadまたはfetchResultsControllerの方法でこれを置くべきか?

答えて

1

すでにRoutineオブジェクトがある場合は、フェッチする必要はありません。 RoutineオブジェクトにroutineExercisesの関係の内容を尋ねるだけです。

開始するオブジェクトがない場合は、フェッチを使用します。すでにオブジェクトを持っている場合は、関連するオブジェクトを見つけるためにリレーションシップを歩きます。既に関係にあるオブジェクトを取得することは、最初に関係を持つという目的を破るものです。

+0

ありがとうございました。では、これを反映するために上記のコードをどのように編集しますか?私はルーチンのリストを持つテーブルを持っています。各ルーチンには独自の特定の練習問題のリストが必要です。今、ルーチンに追加する実行ファイルがあれば、特定のルーチンではなくすべてのルーチンに表示されます。 ルーチンの各エンティティには、演習のリストが必要です。今は、すべてのルーチンで同じ演習リストがあるようです。 –

+0

わかりません。書かれたフェッチは、特定の 'Routine'オブジェクトとの関係を持つ' Exercise'オブジェクトだけを返すべきです。すべてのフェッチに対して同じ 'Exercise'オブジェクトを取得した場合、(1)あなたは常に同じ' Routine'オブジェクトを述語に提供していますか、または(2)すべての 'Exercise'オブジェクトを同じ' Routine'オブジェクト関係。 – TechZen

関連する問題