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