我有以下NSMutableArrays:
NSMutableArray *array1 = [[NSMutableArray alloc]initWithObjects:@"AAA",@"BBB",@"CCC",nil];
NSMutableArray *array2 = [[NSMutableArray alloc]initWithObjects:@"BBB",@"AAA",@"CCC",nil];
NSMutableArray *array3 = [[NSMutableArray alloc]initWithObjects:@"CCC",@"BBB",@"AAA",nil];
NSMutableArray *number = [[NSMutableArray alloc]initWithCapacity:3]; <- use sorting key.
NSNumber *number1 = [[NSNumber alloc]initWithInt:30];
NSNumber *number2 = [[NSNumber alloc]initWithInt:20];
NSNumber *number3 = [[NSNumber alloc]initWithInt:10];
[number addObject:number1];
[number addObject:number2];
[number addObject:number3];
但我想得到这个结果:
// get results to sorted by number key
// number result : 10, 20, 30
// array1 result : CCC, BBB, AAA
// array2 result : CCC, AAA, BBB
// array3 result : AAA, BBB, CCC
我将如何做到这一点?
答案 0 :(得分:0)
我认为您要求的是将多个数组排序为与控制数组相同的相对顺序? 在这种情况下,如果您可以对一个数组进行排序,只需在对第一个数组进行排序时将相同的变换应用于其他数组?
答案 1 :(得分:0)
请参阅-sortedArrayUsing...
方法的文档。你可能想要实现自己的比较器块。
答案 2 :(得分:0)
我会以不同的方式解决这个问题。我将定义一个包含三个字符串和一个整数的类,并将该类的实例放在一个数组中。对数组进行排序时,将对整数进行排序,其余的将自动与其一起移动。
@interface QuadrupleItems : NSObject
{
NSString *first;
NSString *second;
NSString *third;
NSInteger integer;
}
// ... methods you might need, e.g. initWithFirst:second:third:integer: etc...
@property (retain) NSString *first;
// etc...
现在,排序很简单,我想您已经知道可以使用sortedArrayUsing:
对数组进行排序。在块中,比较项的整数属性。