2011-07-29 2 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:을 사용할 수 있습니다 알고 이미 당신을 생각한다. 블록에서 항목의 정수 속성을 비교합니다.

관련 문제