Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Save NSDictionary to plist

I am using the code found in this post: Mulitple Arrays From Plist, with the same plist formatting.

This works successfully, however I do not know how to save the created arrays back into a plist, in the same format.

How would I achieve this?

EDIT: It is not so much the saving that I need, but the forming of the data to save.
The plist is an array of dictionaries with strings and their corresponding keys. All the strings with a certain key are put into an array of their own.

How would I put that array back into the correct positions in the array of dictionaries, ready to save?

like image 545
Ashley Staggs Avatar asked Jun 10 '11 19:06

Ashley Staggs


2 Answers

Here's the simplest way:

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

See the documentation for -writeToFile:atomically:.

like image 154
John Calsbeek Avatar answered Nov 18 '22 17:11

John Calsbeek


Don't forget to create myPlistFile.plist and add it in your application resource folder.

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

you could scan paths here and search myPlistFile.plist using for loop.

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];
like image 17
Jhaliya - Praveen Sharma Avatar answered Nov 18 '22 17:11

Jhaliya - Praveen Sharma