2012-10-25 4 views
1

배열을 정렬하는 데 문제가 있습니다 .i 두 가지 문제가 있습니다. 1. 다음 코드를 사용하여 정렬 rightArray가 작동하지 않습니다.2.i에는 올바른 배열을 정렬 할 때 오른쪽 Array와 비교하여 인덱스를 변경해야하는 leftArray도 있습니다. 가능합니까?.배열을 정렬 할 수 없습니다

NSArray *rightArray = [[NSArray alloc] initWithObjects:[mutArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 11)]], nil]; 
NSArray *sortedArray = [rightArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 
NSLog(@"%@",sortedArray); 

출력 : 내가

2012-10-25 19:11:44.571 Converter[3511:207] (
    (
    USD, 
    EUR, 
    GBP, 
    JPY, 
    CAD, 
    AUD, 
    INR, 
    CHF, 
    CNY, 
    KWD, 
    SGD 
) 
) 
+0

mutArray에 무엇이 있습니까? –

+0

문자열의 배열입니다. – Sekhar

+0

여기에 입력과 출력을 붙입니다. –

답변

3
NSArray *rightArray = [[NSArray alloc] initWithObjects:[mutArray objectsAtIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 11)]], nil]; 
NSArray *sortedArray = [[rightArray lastObject] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 
NSLog(@"%@",sortedArray); 

귀하의 문자열 배열의 배열에 위의 코드를 사용하여 정렬 한 후. rightArray에있는 유일한 객체를 가져 와서 정렬하십시오.

당신이 중간 데이터 구조를 사용할 수있는 두 번째 질문에 대한 편집

NSMutableDictionary *temp = [[NSMutableDictionary alloc] init]; 
NSArray *keys = [rightArray lastObject]; 
NSArray *objs = [leftArray lastObject]; // presuming they're also an array in an array 

for (int i = 0; i < [keys count]; i++) { 
    // we'll use the dictionary to set an one-to-one relationship 
    [temp setObject:[objs objectAtIndex:i] forKey:[keys objectAtIndex:i]]; 
} 

NSArray *sortedKeys = [keys sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 
NSArray *sortedObjs = [temp objectsForKeys:sortedKeys notFoundMarker:[NSNull null]]; 
[temp release]; // if not using ARC 
+0

감사합니다. Alexander의 working.can u는 두 번째 질문에도 도움이됩니까? – Sekhar

0
NSArray *array = @[@"USD",@"EUR",@"GBP",@"JPY",@"CAD",@"AUD",@"INR",@"CHF",@"CNY",@"KWD",@"SGD"]; 
NSArray *sortedArray = [array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; 
NSLog(@"SortedArray:%@",sortedArray); 

는 출력 : 알렉산더 당신이 배열을 전달하지 않는 대답으로

SortedArray:(
    AUD, 
    CAD, 
    CHF, 
    CNY, 
    EUR, 
    GBP, 
    INR, 
    JPY, 
    KWD, 
    SGD, 
    USD 
) 

문자열의.

관련 문제