按日期 属性 对 NSMutableArray 中的 NSMutableArray 进行排序

Sort an NSMutableArray within an NSMutableArray by date property

我有一个 NSMutableArray,它有一个内部 NSMutableArray,我想在内部 NSMutableArray 中按日期 属性 对它进行排序(对外部项目排序)。

The array looks like this
[
  {
     messages : [
     { 
     date
     },
     ..... etc
     ]
  },
..... etc
]

下面的代码是我抛出异常的尝试

NSSortDescriptor *sdSortDate = [NSSortDescriptor sortDescriptorWithKey:@"messages.@lastObject.date" ascending:YES];
events = [NSMutableArray arrayWithArray:[events sortedArrayUsingDescriptors:@[sdSortDate]]];

示例

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '[<__NSArrayM 0x604000654670> valueForKeyPath:]: this class does not implement the lastObject operation.'

关于如何做到这一点有什么想法吗?

您应该使用 messages.date.@lastObject 而不是 messages.@lastObject.date。试试下面的代码

NSSortDescriptor *sdSortDate = [NSSortDescriptor sortDescriptorWithKey:@"messages.date.@lastObject" ascending:YES];
events = [NSMutableArray arrayWithArray:[events sortedArrayUsingDescriptors:@[sdSortDate]]];