我有一个4个实体的一对多关系。
有fetch和谓词的问题。我能够获取正确的第一个实体数据(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中只存储一个对象时,这可以正常工作。
但是当RecordWorkout中存储多个存储器时,它将全部获取它们。
是否可以在此提取中添加辅助NSPredicate,例如,仅获取等于workoutLabel.text的recordWorkout。
由于
答案 0 :(得分:0)
为可能需要它的人提供答案。
在谓词中你可以有两个请求:
NSPredicate *predicateWorkout = [NSPredicate predicateWithFormat:@"recordDate = %@ AND recWorkoutName == %@", self.recordDate, testLabel2.text];