1

我有一系列字典..看起来像这样。

(
   {name = somename;
    date = NSDate;
    other_params = some other params;
   },
   ...
)

然后如何按 NSDate 对数组项进行排序(从最旧到最新,反之亦然)。我只是做一个基本的选择排序算法还是有更短的方法?

4

2 回答 2

3

您可以使用描述符或比较器对数组进行排序,无论您觉得更舒服。下面是一个使用比较器的例子:

NSArray *sortedArray = [myArray sortedArrayUsingComparator: ^(id obj1, id obj2) {
    return [[obj1 date] compare:[obj2 date]];
}];
于 2012-04-12T02:18:20.157 回答
0

这是排序描述符选项:

// Adjust the 'ascending' option to invert the sort order.    
NSSortDescriptor *dateSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"date" ascending:YES];
// The sort descriptors have to go into an array.
NSArray *sortDescriptors = [NSArray arrayWithObject:dateSortDescriptor];

NSArray *sortedArray = [myArray sortedArrayUsingDescriptors:sortDescriptors];

如果您使用 anNSMutableArray并且不需要保留其原始顺序,您也可以就地排序。

于 2012-04-12T02:32:49.633 回答