FetchRequest和NSPredicate问题

时间:2013-09-10 17:38:42

标签: core-data one-to-many nspredicate nsfetchrequest

我有一个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。

由于

1 个答案:

答案 0 :(得分:0)

为可能需要它的人提供答案。

在谓词中你可以有两个请求:

NSPredicate *predicateWorkout = [NSPredicate predicateWithFormat:@"recordDate = %@ AND recWorkoutName == %@", self.recordDate, testLabel2.text];