2013-04-21 3 views
0

나는 두 개의 문자열이있는 여러 개의 다른 배열을 보유하고있는 배열을 가지고 있습니다. 하위 배열 내부의 첫 번째 문자열에 따라 상위 배열의 항목을 알파벳순으로 정렬하려고합니다. 어떻게하면 좋을까요?알파벳 순서로 된 다차원 배열 (obj c)

상위 배열 --- childArray1 (bString, 문자열) childArray3 (CString을, 문자열) childArray4 (aString, 문자열)

변경에 childArray2 (dString, 문자열) -> childArray4 (aString 문자열) childArray1 (bString 문자열) childArray3 (CString을 문자열) childArray2 (dString, 문자열)

그래서 각 하위 어레이의 첫번째 스트링은 PA의 하위 어레이의 인덱스를 결정 rent array

+0

예 –

답변

1

가장 간단한 해결책은 다차원 배열이 아니고 compare: 메서드를 사용하여 값에 대한 사용자 지정 개체를 사용하는 것입니다.

@interface MyObject : NSObject 

@property (nonatomic, strong, readwrite) NSString* firstString; 
@property (nonatomic, strong, readwrite) NSString* secondString; 

- (NSComparisonResult)compare:(MyObject*)object; 

@end 

@implementation MyObject 

- (NSComparisonResult)compare:(MyObject*)object { 
    return [self.firstString compare:object.firstString]; 
} 

@end 

한 후 사용하여 배열을 정렬 : 당신이 당신의 구현에 충실하려면하시기 바랍니다 이해 한 후,

NSArray* sortedObjects = [array sortedArrayUsingSelector:@selector(compare:)]; 

NSArray* sortedObjects = [array sortedArrayUsingComparator:^(id obj1, id obj2) { 
    NSString* string1 = [obj1 objectAtIndex:0]; 
    NSString* string2 = [obj2 objectAtIndex:0]; 

    return [string1 compare:string2]; 
}];