RAGOpoR
RAGOpoR

Reputation: 8168

is it possible to save NSMutableArray or NSDictionary data as file in iOS?

I want to save an NSMutableArray or NSDictionary as a permanent file. Then, I would like to reopen the file later.

Is this possible? If so, how can I do it?

Upvotes: 20

Views: 23306

Answers (2)

taskinoor
taskinoor

Reputation: 46027

To write in file

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

[myArray writeToFile:filePath atomically:YES];

To read from file

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

myArray = [NSArray arrayWithContentsOfFile:filePath];

myArray will be nil if file is not present. And NSDictionary has similar methods. Please check the reference for the details of these methods.

Upvotes: 53

Hancock_Xu
Hancock_Xu

Reputation: 73

May be you can convert a Dictionary to JSON data.and write it to a file.

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

Upvotes: 2

Related Questions