在排序的核心数据获取结果中排序?

Ste*_*llo 4 sorting iphone core-data

所以我有以下代码,通过"color"属性对核心数据进行排序.

sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"color" ascending:YES];
sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
Run Code Online (Sandbox Code Playgroud)

有没有办法获取该类型的结果,现在按日期(另一个属性)在每个颜色"组"中进行子排序?

基本上这是我现在得到的一个例子......

RED - 11/1/2010
RED - 9/8/2010
RED - 11/9/2011
RED - 10/20/2011
GREEN - 11/1/2010
GREEN - 9/8/2010
GREEN - 11/9/2011
BLUE - 10/20/2011
BLUE - 11/1/2010
BLUE - 9/8/2010
Run Code Online (Sandbox Code Playgroud)

这就是我希望看到结果的方式......

RED - 9/8/2010
RED - 11/1/2010
RED - 10/20/2011
RED - 11/9/2011
GREEN - 9/8/2010
GREEN - 11/1/2010
GREEN - 11/9/2011
BLUE - 9/8/2010
BLUE - 11/1/2010
BLUE - 10/20/2011
Run Code Online (Sandbox Code Playgroud)

我确信这可以做到,但我不确定如何实现.

mse*_*dio 10

当您调用SetSortDescriptors时,请传递要排序的所有NSSortDescriptors的数组.在您的示例中,您只创建了一个排序描述符,并且只将其添加到排序描述符数组中.为日期字段创建第二个NSSortDescriptor,并将其添加到排序描述符数组中.它们按照数组中的顺序应用于数据集.请参阅下面的Apple文档说明.

这样的事情应该有效:

NSSortDescriptor *colorSort = [[NSSortDescriptor alloc] initWithKey:@"color" ascending:asc selector:nil];
NSSortDescriptor *dateSort = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:asc selector:nil];
NSArray *sortDescriptors = [NSArray arrayWithObjects:colorSort, dateSort, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
Run Code Online (Sandbox Code Playgroud)

请参阅以下链接:https: //developer.apple.com/library/ios/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/NSFetchRequest.html

https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSSortDescriptor_Class/Reference/Reference.html

设置接收器的排序描述符数组. - (void)setSortDescriptors:(NSArray*)sortDescriptors

sortDescriptors - 排序描​​述符指定在发出获取请求时返回的对象应该如何排序 - 例如按姓氏,然后按名字.排序描述符按它们在sortDescriptors数组中出现的顺序应用(以最低数组索引 - 第一顺序串行).