按相关实体的属性对核心数据集进行排序

时间:2014-01-27 12:07:45

标签: ios objective-c core-data

我有一个带有WORKOUT实体的Core Data模型,它与EXERCISE实体有很多关系。

我为特定用户提供了一组练习,但我想通过他们的WORKDate(WORKOUT实体上的属性)对这些练习进行排序。

如何针对相关对象上的属性对我的集合执行排序?

理想情况下,我想做这样的事情:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"workout.workoutDate" ascending:NO selector:@selector(compare:)];
return [self.exercises sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];

1 个答案:

答案 0 :(得分:3)

您的排序描述符一见钟情。 但self.exercisesNSSet。要进行排序,您必须将其转换为NSArrayallObjects

[[self.exercises allObjects] sortedArrayUsingDescriptors:…]

或者,您可以在“EXERCISE”实体上执行获取请求, 使用谓词将结果限制为当前用户的所有练习, 和你的排序描述符。 (这个谓词看起来完全取决于你的关系 从“EXERCISE”到“USER”。)