【问题标题】:NSFetchedResultController Sction Name - Custom Sorting according to datesNSFetchedResultsController 动作名称 - 根据日期自定义排序
【发布时间】:2014-08-16 20:54:07
【问题描述】:

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

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

  • 我尝试将 NSSortDescriptor 与 selector 方法一起使用,但 Selector 方法格式仅返回 NSComparisonResult 对象。

【问题讨论】:

  • 您是否阅读了有关部分如何工作的信息?您在实现中分别有排序和部分名称吗?显示代码。
  • 是的,我做到了。我需要将日期与当前日期进行比较。例如,如果消息日期是今天的日期,它应该组合在一起。如果是昨天的,它应该分组在昨天的组中等等。

标签: ios iphone core-data nssortdescriptor nsfetchedresultscontroller


【解决方案1】:

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

例如,您可以使用此代码 sn-p。

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];                                                                                                                                                                               

【讨论】:

  • 你可能想添加一些关于sectionNameKeyPath:@"message"的细节
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
相关资源
最近更新 更多