ios - NSFetchedResultsController 操作名称 - 根据日期自定义排序

标签 ios iphone core-data nssortdescriptor nsfetchedresultscontroller

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

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

  • 我尝试将 NSSortDescriptor 与选择器方法结合使用,但选择器方法格式仅返回 NSComparisonResult 对象。

最佳答案

不要对结果进行排序,而是尝试在获取请求本身中添加排序描述符。并使用此获取请求创建 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];                                                                                                                                                                               

关于ios - NSFetchedResultsController 操作名称 - 根据日期自定义排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24423145/

相关文章:

ios - 当触摸位于不同的 subview 中时, super View 上的 UIPinchGestureRecognizer 不会尝试识别捏合

iPhone:带有委托(delegate)的 NSFetchedResultsController 和来自单独线程的数据更新

iphone - UIWebView 流媒体 YouTube 在 iPad 上无法全屏显示

core-data - 从 RestKit 过渡到纯 AFNetworking 2.0

cocoa - CoreData 和大表

ios - AdMob 和 DFP 网络之间的区别?

ios - 在展开 segue 之前显示 UIAlert

ios - iOS7 相机拍照模式全屏

iphone - 使用 NSXMLParser 获取第一个 <created_at> 条目以显示推文的日期

ios - 使用 prepareForSegue : sender: or tableView: didSelectedRowAtIndexPath: 移动到另一个 View Controller