Можно ли сохранить данные NSMutableArray или NSDictionary в виде файла в iOS? - PullRequest
19 голосов
/ 30 сентября 2010

Я хочу сохранить NSMutableArray или NSDictionary как постоянный файл.Затем я хотел бы открыть файл позже.

Возможно ли это?Если да, то как я могу это сделать?

Ответы [ 2 ]

51 голосов
/ 30 сентября 2010

Для записи в файл

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:FILE_NAME];

[myArray writeToFile:filePath atomically:YES];

Для чтения из файла

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:FILE_NAME];

myArray = [NSArray arrayWithContentsOfFile:filePath];

myArray будет nil, если файл отсутствует. И у NSDictionary есть похожие методы. Пожалуйста, проверьте ссылку для деталей этих методов.

2 голосов
/ 15 декабря 2014

Может быть, вы можете преобразовать словарь в данные JSON и записать его в файл.

NSDictionary *dict = /* the NSDictionary/NSArray you need to write */

NSError *writeError = nil;
NSData* data;
data = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&writeError];

if (!writeError) {
    [data writeToFile:filePath atomically:YES];
}
...