iPad не читает мои списки

Когда я добавляю plist-файл в свой проект XCode, мое приложение для iPad не может его прочитать.

Например: у меня есть massCategories.plist в папке моего проекта (где находится файл xproj). Внутри моего списка есть следующий код:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Item 1</key>
    <dict>
        <key>Key 1</key>
        <string>Value 1</string>
        <key>Key 2</key>
        <string>Value 2</string>
    </dict>
    <key>Item 2</key>
    <dict>
        <key>Key 3</key>
        <string>Value 3</string>
        <key>Key 4</key>
        <string>Value 4</string>
    </dict>
</dict>
</plist>

Внутри моего ViewController у меня есть следующий метод:

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSBundle *mainBundle = [NSBundle mainBundle];
    NSString *plistData = [mainBundle pathForResource:@"MassCategories" ofType:@"plist"];
    NSArray *massCategories = [[NSArray alloc] initWithContentsOfFile:plistData];
    // breakpoint
}

При запуске (и "паузе" в точке останова) massCategories содержит nil. Добавление файла plist в другую папку, похоже, не работает (или я, должно быть, использую неправильные папки, что вполне возможно :-)).

Какие-либо предложения?


person vstrien    schedule 08.06.2011    source источник


Ответы (2)


Убедитесь, что вы правильно назвали имя. Вы говорите, что файл называется «massCategories.plist», но пытаетесь загрузить @ «MassCategories». iOS чувствительна к регистру.

person gnuchu    schedule 08.06.2011
comment
Просто дважды щелкните имя файла. - person Luke; 08.06.2011
comment
Я имел в виду, что не нашел способа изменить только регистр: при изменении регистра XCode жалуется, что файл уже существует.. - person vstrien; 17.06.2011

Понятно!

Просто обновите plist так, чтобы основным элементом был массив (как и следовало ожидать при попытке импортировать его как массив):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
...
</array>
</plist>
person vstrien    schedule 08.06.2011