NSFetchedResultsController节名称 - 根据日期自定义排序

时间:2014-06-26 05:42:17

标签: ios iphone core-data nssortdescriptor nsfetchedresultscontroller

我正在使用NSFetchedResultController。以下是我想要实现的方案。

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

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

1 个答案:

答案 0 :(得分: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];