我有一系列字典..看起来像这样。
(
{name = somename;
date = NSDate;
other_params = some other params;
},
...
)
然后如何按 NSDate 对数组项进行排序(从最旧到最新,反之亦然)。我只是做一个基本的选择排序算法还是有更短的方法?
我有一系列字典..看起来像这样。
(
{name = somename;
date = NSDate;
other_params = some other params;
},
...
)
然后如何按 NSDate 对数组项进行排序(从最旧到最新,反之亦然)。我只是做一个基本的选择排序算法还是有更短的方法?
您可以使用描述符或比较器对数组进行排序,无论您觉得更舒服。下面是一个使用比较器的例子:
NSArray *sortedArray = [myArray sortedArrayUsingComparator: ^(id obj1, id obj2) {
return [[obj1 date] compare:[obj2 date]];
}];
这是排序描述符选项:
// 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
并且不需要保留其原始顺序,您也可以就地排序。