NSDictionary dictionaryWithContentsOfFile не загружает данные в порядке - PullRequest
0 голосов
/ 16 февраля 2011

Я пытаюсь загрузить некоторые данные из 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, возможно, так, чтобы он был в правильном порядке.

Спасибо

Ответы [ 3 ]

4 голосов
/ 16 февраля 2011

NSDictionary объекты не сохраняют порядок. Не следует ожидать, что ключи будут перечислены в том же порядке, в котором они были прочитаны.

2 голосов
/ 27 сентября 2012

Если порядок важен, вы должны создать массив в своем списке и получить к нему доступ с помощью одного из ключей словаря.

1 голос
/ 16 февраля 2011

Есть идеи почему?

Да.NSDictionary неупорядочено.

...