我正在尝试将一些数据从plist加载到数组中
NSDictionary* mydictionary = [ NSDictionary dictionaryWithContentsOfFile:[ [ [ NSBundle mainBundle] bundlePath ] stringByAppendingPathComponent:@"MyLevels.plist" ] ];
NSMutableArray *panelNames1;
panelNames1 = [[NSMutableArray alloc] init];
for (id theKey in mydictionary) {
[panelNames1 addObject:[mydictionary objectForKey:theKey]];
}
但它似乎没有以与MyLevels.plist相同的顺序输出到数组中。
MyLevels.plist看起来像这样: [关键:1价值:一] [关键:2价值:两个] [关键:3价值:三] [关键:4价值:四] [关键:5价值:五]
但它按此顺序读取:三,一,四,二,五
知道为什么?? 或者甚至是另一种执行for循环的方式也许是正确的顺序。
由于
答案 0 :(得分:4)
NSDictionary
个对象不保留排序。您不应期望按照读取它们的相同顺序枚举密钥。
答案 1 :(得分:2)
如果顺序很重要,您应该在plist中创建一个数组,并从其中一个字典键访问它。
答案 2 :(得分:1)
知道为什么吗?
是。 NSDictionary
无序。