我有一个带有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]];
答案 0 :(得分:3)
您的排序描述符一见钟情。
但self.exercises
是NSSet
。要进行排序,您必须将其转换为NSArray
与allObjects
:
[[self.exercises allObjects] sortedArrayUsingDescriptors:…]
或者,您可以在“EXERCISE”实体上执行获取请求, 使用谓词将结果限制为当前用户的所有练习, 和你的排序描述符。 (这个谓词看起来完全取决于你的关系 从“EXERCISE”到“USER”。)