NSFetchedResultController Sction Name - 根据日期自定义排序

5 iphone core-data nssortdescriptor nsfetchedresultscontroller ios

我正在使用NSFetchedResultController.以下是我想要实现的场景.

  • 我有一个带有MessageDate属性的表消息(即NSDate).我需要将消息按日期标签排序为今天,昨天,上周和更早.

  • 我尝试使用NSSortDescriptor和selector方法,但Selector方法格式只返回NSComparisonResult对象.

gan*_*nka 0

不要对结果进行排序,而是尝试在获取请求本身中添加排序描述符。并使用此获取请求创建 NSFetchedResultController 实例。

例如,您可以使用此代码片段。

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"messageDate" ascending:YES];

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

[fetchRequest setSortDescriptors:sortDescriptors];

NSFetchedResultsController *myFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:@"message" cacheName:nil];                                                                                                                                                                               
Run Code Online (Sandbox Code Playgroud)