Iphone 自定义NSSORTDescriptor

Iphone 自定义NSSORTDescriptor,iphone,ios,nssortdescriptor,Iphone,Ios,Nssortdescriptor,我有一个NSFetchedResultsController,用于获取核心数据并填充表 要对当前数据进行排序,我使用以下代码: NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"month" ascending:YES]; NSArray *sortDescriptors = @[sortDescriptor]; [fetchRequest setSortDescriptors:sortDesc

我有一个
NSFetchedResultsController
,用于获取核心数据并填充表

要对当前数据进行排序,我使用以下代码:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"month" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];

[fetchRequest setSortDescriptors:sortDescriptors];
月份是一年中月份的
NSString
,因此当前按字母顺序对一年中的月份进行排序

但我希望发生的是,以最接近今天日期的顺序显示月份

例如,如果今天的月份是四月,四月将显示在顶部,然后是五月、六月、七月等


感谢您的帮助,谢谢

定制描述符并不难,但我认为定制SortDescriptor在您的情况下不可用(核心数据排序描述符不能自动运行定制代码)


无论如何:

实现描述符传递一个自定义比较器块,返回obj1和obj2之间的相互关系

示例代码:

id desc = [[NSSortDescriptor alloc] initWithKey:@"month" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
    ...
}];
检索:

typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};

感谢您的帮助,但我已经尝试实现了,我得到了以下结果:
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因是:“不支持的NSSortDescriptor(不支持比较器块)”
我就是这么说的!引用:“定制描述符并不难,但我认为定制SortDescriptor在您的情况下不可用(核心数据排序描述符无法快速运行定制代码)”--您想要的是CDOK中不可能实现的东西,好吧,只是您给出了一个代码示例,仅此而已。谢谢你的信息!我把它写在一条虚线下面。这回答了问题。在第一句话中,我告诉过你那样做是不可行的