我有NSFetchedResultsController
我用来获取核心数据并填充表格。
要对当前使用以下代码的数据进行排序:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"month" ascending:YES];
NSArray *sortDescriptors = @[sortDescriptor];
[fetchRequest setSortDescriptors:sortDescriptors];
月份是一年中NSString
个月,因此目前按字母顺序对一年中的月份进行排序。
但我想要发生的事情是按照与今天最接近的顺序显示几个月。
例如,如果今天的月份是四月,那么四月将显示在顶部,然后是五月,六月,七月等。
感谢任何帮助,谢谢!
答案 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};