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

#xcode #ios #ipad #plist

#xcode #iOS #iPad #список

Вопрос:

Когда я добавляю файл plists в свой проект 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
}
  

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

Есть предложения?

Ответ №1:

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

Комментарии:

1. Просто дважды щелкните на имени файла.

2. Я имел в виду, что я не нашел способа изменить только регистр: при изменении регистра XCode жалуется, что файл уже существует..

Ответ №2:

Понял!

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

 <?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>