我有一系列NSMutableDictionaries,包含(其中包括)关键位置。 我需要对数组进行排序以将其输入到表中。顶部应该是N,下面应该是A,而下面应该是R. 所以在排序中:如何按顺序对数组进行排序:N - A - R?
编辑:我可以通过查看两个变量来订购,但我使用的是2个以上的变量(总共7个)......谢谢,
答案 0 :(得分:6)
如果您的数组是可变的,则可以使用-sortUsing ...方法对其进行排序。如果没有,您可以使用-sortedArrayUsing ...方法创建一个新的排序数组。例如,有-sortUsingComparator:和-sortedArrayUsingComparator:将比较器块作为参数的方法。您只需提供一个使用自定义排序顺序比较两个对象的块,如下所示:
[myArray sortUsingComparator:^(id firstObject, id secondObject) {
NSString *firstKey = [firstObject valueForKey:@"location"];
NSString *secondKey = [secondObject valueForKey:@"location"];
if ([firstKey stringEqual:@"N"] || [lastKey stringEqual:@"R"])
return NSOrderedAscending;
else if ([firstKey stringEqual:secondKey])
return NSOrderedSame;
else
return NSOrderedDescending;
}];
在Collections Programming Topics文档中对排序数组进行了详尽的讨论,并附有示例。