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

Возможно ли сохранить данные NSMutableArray или NSDictionary как файл в iOS?

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

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

4b9b3361

Ответ 1

Записать в файл

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 будет равен нулю, если файл отсутствует. И NSDictionary имеет похожие методы. Пожалуйста, ознакомьтесь со ссылкой для получения информации об этих методах.

Ответ 2

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

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];
}