iOS: проблема при заполнении Picker из plist-файла - PullRequest
2 голосов
/ 07 июля 2011

Я следовал учебному пособию на http://iphonebyradix.blogspot.com/2011/03/read-and-write-data-from-plist-file.html, демонстрирующем, как извлечь данные из списка в массив, чтобы я мог поместить его в сборщик.

У меня был сборщик, заполняющий нормально изМассив, который я создал вручную, но я пытаюсь прочитать массив из файла plist, используя тот же метод, что и в этом уроке, но я не получаю данных.

Файл Plist (track.plist) выглядит следующим образомэто:

Root  (Dictionary)
  TrackNames (Array)
     Item 0  (String)   Track 1
     Item 1  (String)   Track 2
     Item 2  (String)   Track 3
     Item 3  (String)   Track 4

и мой код:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"tracks" ofType:@"plist"];

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:plistPath];
NSArray *trackArray = [dict valueForKey:@"TrackNames"];

self.trackData = trackArray;

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

NSArray *trackArray = [dict allKeys];

, я получу заполнитель «Root», и это заставит меня поверить, что я что-то упустил и недостаточно углублён ...

Кто-нибудь поможет?

Спасибо

1 Ответ

1 голос
/ 07 июля 2011

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

NSArray *trackArray = [[dict objectForKey:@"Root"] objectForKey:@"TrackNames"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...