2011-11-21 2 views
3

입력 순서대로 사전의 값을 출력하는 것이 어떨까요?입력과 같은 NSMutableDictionary의 출력을 주문하십시오.

예 :

내 입력 :

[dicValue0 setObject:@"Start Date & Time" forKey:@"START_DATETIME"]; 
    [dicValue0 setObject:@"Specify End" forKey:@"SPECIFY_END"]; 
    [dicValue0 setObject:@"End Date & Time" forKey:@"END_DATETIME"]; 
    [dicValue0 setObject:@"Open End" forKey:@"END_OPEN"]; 

출력 :

  • 시작 날짜 & 시간
  • 종료 날짜 & 시간
  • 지정 끝
  • ,
  • 오픈 엔드

내가 어떻게 알지? dictionary works하지만 입력과 동일한 순서로 출력하고 싶습니다!

입력 순서대로 출력을 정렬하는 루프를 작성할 수 있습니다. 그러나 만약 내가 10000 + 가치가 그 performant 최고의 아니에요. 사과로부터이 문제에 도움이되는 것이 있습니까?

+2

NSDictionary는 순서가 없습니다. 인덱스/값으로 출력을 직접 주문해야합니다. – Till

답변

3

나는 사전 입력 순서를 추적하지 않는 것을 확신합니다. 어떻게 사전을 출력하고, 키를 반복하거나 사전을 인쇄하고 있습니까? 당신이 순서 당신이 객체를 검색 할 알고 있다면

, 당신은 당신이 원하는 경우 원하는 순서

5

삽입 된 키의 순서를 추적하고 사전을 통해 값을 가져 오는 과정을 반복하는 배열을 만들어야합니다. 파운데이션에 주문 된 사전이있는 기본 제공 방법은 없습니다.

2

에 사전에서 개체를 꺼내 그 통해 키 배열과 루프의 자신의 버전을 만들 수 있습니다 순서가 지정된 사전을 만드는 방법에 대한 예 : 여기를 확인하십시오. http://cocoawithlove.com/2008/12/ordereddictionary-subclassing-cocoa.html

+1

그 기사와 그에 대한 설명을 읽은 나는 작곡을 사용하는 것이 더 좋은 생각이라고 생각합니다. NSMutableDictionary을 서브 클래스하려고하면 함정에 빠져있는 것처럼 보입니다. – JeremyP

+0

이 페이지도 있습니다.하지만 주석 때문에 해결책을 알고 있습니다. – mybecks

관련 문제