Чтение и запись в списки в xcode 4.0.2 - проблема извлечения из словаря - PullRequest
0 голосов
/ 01 сентября 2011

Я следовал этому Уроку о том, как читать из списка.Однако я не могу прочитать строку с именем ключа.я попытался поставить NSLog("%@", [temp objectForKey:@"Name"]); но он возвращает ноль.У меня была похожая проблема, которая раньше была связана с открытием XML-файла и ручным изменением dict в массив.Как я могу это исправить?

иерархия в файле XML это то, что смущает меня.словарь, который я создал с именем root со строкой John Doe, является частью самого словаря?Разъяснение приветствуется!

Из учебника, указанного выше:

// check to see if Data.plist exists in documents
if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath])
{
    // if not in documents, get property list from main bundle
    plistPath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
}

// read property list into memory as an NSData object
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
NSString *errorDesc = nil;
NSPropertyListFormat format;
// convert static property liost into dictionary object
NSDictionary *temp = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:plistXML mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&errorDesc];
if (!temp)
{
    NSLog(@"Error reading plist: %@, format: %d", errorDesc, format);
}

NSLog(@"%@", [temp objectForKey:@"Name"];

1 Ответ

1 голос
/ 01 сентября 2011

Скорее всего, это потому, что нет объекта с ключом @"Name" (помните, что Xcode чувствителен к регистру!) В (предположительно) NSDictionary с именем temp.

Чтобы получить более конкретный ответ, вам нужно разместить код, в котором вы определите temp.

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