2011-07-29 94 views
0

我有以下NSMutableArrays:如何對NSMutableArray進行排序?

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

請參閱-sortedArrayUsing...方法的文檔。你可能會想要實現你自己的比較器塊。

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:到數組排序。在該塊中,您可以比較項目的整數屬性。

相關問題