Подтвердить что ты не робот

Сохранить NSDictionary для plist

Я использую код, найденный в этом сообщении: Mulitple Arrays From Plist, с тем же форматированием plist.

Это работает успешно, однако я не знаю, как сохранить созданные массивы обратно в plist в том же формате.

Как я могу это достичь?

EDIT: Это не столько экономия, которая мне нужна, но и формирование данных для сохранения.
Plist представляет собой массив словарей со строками и соответствующими клавишами. Все строки с определенным ключом помещаются в собственный массив.

Как бы я вернул этот массив в правильные позиции в массиве словарей, готовых к сохранению?

4b9b3361

Ответ 1

Не забудьте создать myPlistFile.plist и добавить его в папку ресурсов приложения.

NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

вы можете сканировать пути здесь и искать myPlistFile.plist, используя для цикла.

NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"myPlistFile.plist"];
if (![[NSFileManager defaultManager] fileExistsAtPath: plistPath])
{
          NSString *bundle = [[NSBundle mainBundle] pathForResource:@"myPlistFile" ofType:@"plist"];
          [[NSFileManager defaultManager] copyItemAtPath:bundle toPath:plistPath error:&error];
}
[myDict writeToFile:plistPath atomically: YES];

Ответ 2

Вот простейший способ:

NSDictionary* dict = ...;
[dict writeToFile:@"..." atomically:YES];

Смотрите документацию для -writeToFile:atomically:.

Ответ 3

И наоборот, чтобы загрузить NSDictionary из файла:

+ (id)dictionaryWithContentsOfFile:(NSString *)path;