Сохранить NSDictionary для plist
Я использую код, найденный в этом сообщении: Mulitple Arrays From Plist, с тем же форматированием plist.
Это работает успешно, однако я не знаю, как сохранить созданные массивы обратно в plist в том же формате.
Как я могу это достичь?
EDIT: Это не столько экономия, которая мне нужна, но и формирование данных для сохранения.
Plist представляет собой массив словарей со строками и соответствующими клавишами.
Все строки с определенным ключом помещаются в собственный массив.
Как бы я вернул этот массив в правильные позиции в массиве словарей, готовых к сохранению?
Ответы
Ответ 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;