获取按最新消息的日期排序对话的请求

时间:2015-08-13 13:01:37

标签: ios objective-c swift core-data nspredicate

我有一个核心数据模型,它有一个Conversation实体和一个Message实体。对话将与Message对象具有一对多的关系,如下所示:

Conversation:
    messages: many Message

Message:
    sentDate: NSDate
    conversation: one Conversation

希望这是有道理的。

我想要做的是列出所有会话,按照每封会话中最近发送日期的消息排序。

我可以执行单个提取请求吗?

1 个答案:

答案 0 :(得分:0)

您可以使用日期中的关系和MAX聚合来完成此操作。

NSFetchRequest *fetchRequest = [NSFetchRequest
    fetchRequestWithEntityName:@"Conversation"];
fetchRequest.sortDescriptors = @[[NSSortDescriptor
    sortDescriptorWithKey:@"messages.@max.sentDate"
                ascending:NO]];