iPad не чете моите списъци

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

Например: имам massCategories.plist в папката на моя проект (където живее xproj-файлът). В моя 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">
<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 съдържа нула. Добавянето на 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