2013-07-14 2 views
0

NSDictionary를 유지하기 위해 this Ordered Dictionary 솔루션을 사용하는 게시물을 보았습니다.OrderDictionary에서 순서 키 가져 오기

그것은 내가 JSON 객체에서 그것을 얻을 같은 순서로 저장합니다,하지만 난 UIPickerView에 대한 값을 사용할 필요가 있기 때문에, 나는 다음과 같은 쓴 :

OrderedDictionary *countryStates = [businessInfo objectForKey:@"allowedStates"]; 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{ 
     NSString *stateShort = [countryStates keyAtIndex:row ]; 
     return [countryStates objectForKey:stateShort]; 
} 

그러나, 내가 얻을 :

[__NSCFDictionary keyAtIndex:]: unrecognized selector sent to instance 
  1. 왜 그래야합니까?
  2. 다른 방법으로 주문을 망치지 않고 UIPickerView에 대한 사전을 사용할 수 있습니까? businessInfo@"allowedStates"에 관련된 개체 만 NSDictionay 때문에
+2

1.'[businessInfo objectForKey : @ "allowedStates"]'는 (클래스가 보여주는 것처럼)'NSMutableDictionary'이기 때문에'OrderedDictionary'가 아닙니다. 2. 나는 따라하지 않습니다. 적절한 객체를 속성으로 설정하고 놓지 마십시오. –

+0

감사합니다. 하지만 UIPickerView 2 NSArray 아니오 만들 필요가? – Dejell

+1

잘 모르겠습니다. 사용 방법에 따라 다릅니다. 더 많은 코드 + 문맥을 보여주십시오. –

답변

2

는이 오류가 발생합니다. 새 개체를 만들고 조작하려면 OrderedDictionary+ (id)dictionaryWithDictionary:(NSDictionary *)dict 메서드를 사용해야합니다.

+0

대답을 설명해 주시겠습니까? dictionaryWithDictionary를 어떻게 사용할 수 있습니까? – Dejell

+2

@Odelya 당신은 ** 전화 ** 그것을. –

+0

다음과 같이하십시오 :'OrderedDictionary * orderedCountryStates = [OrderedDictionary dictionaryWithDictionary : [businessInfo objectForKey : @ "allowedStates"]]' – rems4e