0

원래 NSArray에있는 NSDictionaries의 keyValue를 기반으로 NSArrays의 NSDictionary를 만들었습니다. 그러나 원래 NSDictionary 내부의 값은 모두 문자열이지만 숫자가 들어있는 문제가 있습니다.NSArray의 NSArray를 NSArrays의 NSDictionary로

이 문제가 내 분류되어있는 NSMutableArray 문제의 존재가 그것이 내가하고 싶습니다이

1 
10 
11 
12 
2 
3 
4 
5 
6 
7 
8 
9 

같은 배열의있는 NSDictionary로 정렬됩니다되는이

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
... etc 

처럼 보이는 때문입니다 이유 NSDictionaries의 원래 NSMutableArray에서 발견 된 원본 순서를 유지하는 방법을 알고 있습니까?

이것은 NSDictionary 배열을 만드는 방법입니다.

NSMutableDictionary *sortedDictionaryArraysForTableView = [NSMutableDictionary dictionary]; 

for (NSDictionary *dict in xmlMArray) { 
    NSString *currentNumberString = [dict objectForKey:@"Number"]; 
    if(![[sortedDictionaryArraysForTableView allKeys] containsObject:currentNumberString]) 
     sortedDictionaryArraysForTableView[currentNumberString] = [NSMutableArray array]; 
    [sortedDictionaryArraysForTableView[currentNumberString] addObject:dict]; 
} 

어떤 도움을 주시면 감사하겠습니다.

+0

NSDictionnary는 인덱스와 관련이 없으므로 정렬 할 수 없습니다. – meda

+0

사전으로 변환하는 것이 도움이되는 것은 아니지만 NSString 비교를 위해 NSNumericSearch 옵션을 사용하는 정렬을 사용하면 도움이됩니다. –

답변

1

NSDictionary는 정렬되지 않은 컬렉션입니다. 사전에 물건을 저장할 때 원래의 순서 (또는 순서)를 유지할 수 없습니다. 순서가 지정된 콜렉션의 경우 NSArray 또는 NSOrderedSet이 필요합니다.

+0

나는 이것이 당신이 sectioned UITableView에서 사용할 객체를 생성하기 위해 무엇을해야한다고 생각 했는가? – HurkNburkS

+1

아니요. 배열 배열은 구분 된 테이블보기에서 잘 작동하지만 사전은 순서가 지정되지 않으므로 주문한 내용을 저장하는 데 유용하지 않습니다. T (이 경우 개별 셀과 개별 셀에 표시되는 데이터에 적합 할 수 있습니다.) –