自定义NSSortDescriptors

时间:2013-01-07 16:49:15

标签: iphone ios nssortdescriptor

我有NSFetchedResultsController我用来获取核心数据并填充表格。

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

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

[fetchRequest setSortDescriptors:sortDescriptors];

月份是一年中NSString个月,因此目前按字母顺序对一年中的月份进行排序。

但我想要发生的事情是按照与今天最接近的顺序显示几个月。

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

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

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


反正:

实现描述符传递一个自定义比较器块,它返回obj1和obj2如何相互关联

示例代码:

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

RETVAL:

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