FetchedResultsController NSSortDescriptor用于一对多关系

时间:2014-04-10 21:39:54

标签: ios nsfetchedresultscontroller nssortdescriptor

我有2个实体:chat< - >> chatMessages(每个聊天都有0条以上的消息,每封消息属于一个聊天)。

我正在制作FetchedResultsController,我想根据最后一条消息的日期对聊天进行排序:

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"ChatModel" inManagedObjectContext:[NSManagedObjectContext MR_defaultContext]];
    [fetchRequest setEntity:entity];

    NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"chatMessages.messageDate" ascending:NO];
    [fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];

但是这个代码我得到了:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'to-many key not allowed here'

如何按要求对聊天进行排序? (就像whatsapp一样)

1 个答案:

答案 0 :(得分:0)

您可以使用集体运营商。

Read about it here

你必须期待的现成答案就像创建一个像这样的排序描述符 -

 NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"chatMessages.@max.messageDate" ascending:NO];