从OrderDictionary获取有序键

时间:2013-07-14 18:43:00

标签: iphone objective-c cocoa-touch nsdictionary

我看到一些帖子要使用this Ordered Dictionary解决方案以保持NSDictionary的顺序。

它以与从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的有序字典吗?

1 个答案:

答案 0 :(得分:2)

您收到此错误的原因是与@"allowedStates"中的businessInfo相关联的对象仅为NSDictionay。您应该使用OrderedDictionary的{​​{1}}方法创建一个新对象,然后对其进行操作。