Инициализируйте plist с корневым элементом - PullRequest
0 голосов
/ 12 января 2011

Я пытаюсь создать RSS-ридер для iPhone, первое, что я пытаюсь сделать, - это создать список для хранения связки NSDictionary.Но когда создается plist в моем appDelegate (didFinishLaunchingWithOptions :), корневыми элементами является NSDictionary, но я хочу, чтобы NSArray содержал другие элементы.

if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
    [[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
}

Переменная filePath - это путь к папке документа,код для создания plist работает нормально.

Ответы [ 2 ]

0 голосов
/ 12 января 2011

Выделите NSMutableArray, затем используйте [NSMutableArray addObject:dictionary, чтобы добавить словари.

В какой момент времени вы записываете массив со словарями в постоянное хранилище (файл) по вашему выбору, но вам не нужно сначала писать пустой файл.Просто убедитесь, что вы обновили файл перед входом в фоновый режим и / или перед выходом из приложения

0 голосов
/ 12 января 2011

Разве вы не можете просто создать пустой массив (NSArray) и записать его в файл?

http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/instm/NSArray/writeToFile:atomically:

И аналогичным образом сделать

[NSArray arrayWithContentsOfFile: path] (или NSMutableArray, если вы предпочитаете это)

http://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/clm/NSArray/arrayWithContentsOfFile:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...