получить обязательный от plist - PullRequest
0 голосов
/ 08 января 2012

Я создал plist и структура выглядит так:

Root - NSDictionary
  firstName - NSArray
  lastName - NSArray

Я не уверен, как получить доступ к этим данным после того, как получу словарь. Когда я регистрирую содержимое моего словаря, вот так

NSDictionary *presetsDict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
self.presetsDictionary = presetsDict;
for (NSString *key in self.presetsDictionary) {
    NSLog(@"key:%@, object:%@", key, [self.presetsDictionary objectForKey:key]);

Я получаю

key:Root, object: {
lastName = (my lastName array, , , , ) // filled with the contents of my plist
firstName - (my firstName array, , , ,)

Я предполагал, что смогу получить массив lastName и firstName с чем-то вроде

NSArray *fArray = [self.presetsDictionary objectForKey:@"firstName"];

Но это возвращает ноль. Как мне получить доступ к моему NSDictionary в plist? Спасибо.

Ответы [ 2 ]

4 голосов
/ 08 января 2012

Похоже, что ваш объект верхнего уровня - это словарь с одним ключом с именем Root , который содержит ваш основной словарь (где живут ваши ключи firstName и lastName ). Таким образом, чтобы получить доступ к этому, вам сначала нужно пройти через объект с ключом Root . Вы можете получить этот словарь и затем получить доступ к его ключам, или использовать путь к ключу, включающий ключ Root :

// Accessing through the Root entry
NSDictionary* rootDict = [[self presetsDictionary] objectForKey:@"Root"];
NSArray* firstNames = [rootDict objectForKey:@"firstName"];
NSArray* lastNames  = [rootDict objectForKey:@"lastName"];

// Accessing using the keypath with Root
NSArray* firstNames = [[self presetsDictionary] valueForKeyPath:@"Root.firstName"];
NSArray* lastNames  = [[self presetsDictionary] valueForKeyPath:@"Root.lastName"];
0 голосов
/ 08 января 2012

Похоже, вам нужно сделать что-то вроде: NSArray * fArray = [self.presetsDictionary valueForKeyPath: @ "Root.firstName"];

Другими словами, похоже, что у вас есть вложенные словари, иединственная запись в базовом словаре - это один ключ, корень, с другими связанными значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...