Я изучил эту тему и обнаружил некоторые различия в файле plist.
Например, у меня есть исходный файл plist в примере кода, который читается по методу
NSArray *array = [[NSArray alloc] initWithContentsOfFile:path];
Исходный файл XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>nameKey</key>
<string>Number One</string>
<key>imageKey</key>
<string>small_one.png</string>
</dict>
<dict>
<key>nameKey</key>
<string>Number Two</string>
<key>imageKey</key>
<string>small_two.png</string>
</dict>
</array>
</plist>
Когда я попытался создать этот же файл выше в интерфейсе XCode, используя Add new File Property List, и после редактирования, поместив элемент таким же образом, как показано в интерфейсе для файла выше, метод [[NSArray alloc] initWithContentsOfFile:path];
завершился неудачей, и я нашелпроблема в структуре файла xml plist.Файл, созданный с использованием интерфейса XCode, приводит к xml plist-файлу:
<plist version="1.0">
<dict>
<key>item 0</key>
<dict>
<key>imageKey</key>
<string>image1.jpg</string>
</dict>
<key>item 1</key>
<dict>
<key>imageKey</key>
<string>image2.jpg</string>
</dict>
</dict>
</plist>
Я исправил прямое изменение в файле xml так же, как и в первом примере, и метод работает нормально.
Дело в интерфейсе XCode для plist-файла, вы не видите этих различий.Оба выглядят одинаково.Возможно это мой Xcode 4.1