私は 4 エンティティの 1 対多の関係を持っています。
フェッチと述語に問題があります。正しい最初のエンティティ データ (RecordDate) を取得できました。このオブジェクトself.recordDateを使用します。その後、多くの RecordWorkouts をフェッチします。
私のコードは以下です:
self.recordDate = [self.recorddates objectAtIndex:0];
NSLog(@"Date: %@", self.recordDate.date);
NSFetchRequest *fetchWorkoutRequest = [[NSFetchRequest alloc] initWithEntityName:@"RecordWorkout"];
NSPredicate *predicateWorkout = [NSPredicate predicateWithFormat:@"recordDate = %@", self.recordDate];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"recWorkoutName" ascending:YES];
[fetchWorkoutRequest setSortDescriptors:@[sortDescriptor]];
[fetchWorkoutRequest setPredicate:predicateWorkout];
self.recordworkouts = [[managedObjectContext executeFetchRequest:fetchWorkoutRequest error:nil] mutableCopy];
self.recordWorkout = [self.recordworkouts objectAtIndex:0];
NSLog(@"Workout: %@", self.recordWorkout.recWorkoutName);
RecordDate エンティティに関連付けられた RecordWorkout を取得できました。これは、RecordWorkout にオブジェクトが 1 つしか保存されていない場合にうまく機能します。
ただし、RecordWorkout に複数保存されている場合は、それらすべてを取得します。
このフェッチ内にセカンダリ NSPredicate を追加して、たとえば、workoutLabel.text と等しい recordWorkout のみをフェッチすることは可能ですか?
ありがとう