2011-11-16 2 views
2

NSMutableDictionary를 사용하고 있는데 첫 번째 알파벳을 기준으로 키를 자동 정렬하고 있습니다. 자동 분류를 사용하지 않도록 설정할 방법이 있습니까? 이 키의 위치를 ​​변경하고 [NSMutableDictionary description] 메서드를 호출 할 때 동일한 문제가 발생했습니다.NSMutableDictionary 정렬 사용 안 함

감사합니다.

+2

왜 사전을 정렬 하시겠습니까? 사전의 요점은 키를 주면 연관된 객체를 제공하고 정렬/검색이 필요 없다는 것입니다. 또한, 나는'NSMutableDictionary'가 객체를 정렬하는 방식을 애플이 최적화 했으므로, 당신이 그걸 처리하지 말아야한다고 확신한다. – msgambel

+1

개체의 순서가 중요하다면 아마 배열을 사용해야합니다. –

+0

JSON Representation으로 컨텐츠를 활용하고 있기 때문에 정렬에 대한 관심이 높습니다. 주문이 필요한지 확실하지 않습니다. 그 경우가 아닌 경우 게시물 본문 또는 헤더를 설정할 때 잘못된 것이 있습니다. – kforkarim

답변

6

설명 문자열을 출력 할 때 키만 정렬되지만 해시 테이블을 기반으로하는 메모리 레이아웃은 변경되지 않습니다. 이를 통해 열거하면 빠른 액세스를 제공하기 때문에 정렬되지 않습니다. this SO post을 참조하십시오.

+0

두 개의 키 쌍 값을 "Username"과 "Password"로 보내지 만 설명에서 "Username"으로 표시되면서 JSON 표현과 관련하여 또 다른 질문이 왔습니다. 따라서 JSON에서도 주문해야합니까? 내가 회상 한 바에 따르면 그것이 사실이 아니고 여전히 그렇습니다. 나는 ASIHTTPRequest API를 사용하고 있기 때문에 여전히 "Post"메소드에 대한 인증을 얻을 수 없기 때문에 꽤 이상하다. – kforkarim

+0

일반적으로 JSON "객체"(사전에 매핑 됨)의 값은 순서가없는 것으로 간주됩니다. 순서에 의존하는 API는 기껏해야 "부정 행위"일 수 있으며, API 빌더가 순서와 무관 한 사전 유형 인터페이스를 사용하는 것이 훨씬 쉽기 때문에 어쨌든 가능성은 희박합니다. (배열 값은 물론 순서에 따라 다릅니다.) –

+0

NextStep JSON 표현 (적어도 익숙한 표현)에서는 정렬 된 JSON "배열"또는 "목록"이 NSArrays에 저장되고 NSDictionaries는 순서가 관련되지 않은 속성을 나타냅니다 . – jbat100