我有一个NSMutableDictionaries数组,其中包含(除其他外)Location键。我需要对数组进行排序以将其输入表格。顶部应为N,下面应为A,再下面应为R。因此,在排序中:如何按顺序对数组进行排序:N-A-R?
编辑:我可以通过查看两个变量来排序,但我使用的变量不止两个(总共7个)...
谢谢,
编辑:我可以通过查看两个变量来排序,但我使用的变量不止两个(总共7个)...
谢谢,
如果你的数组是可变的,你可以使用-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;
}];
在集合编程主题文档中,有一个涵盖了数组排序的详细讨论和示例。