Alex Rivera | Logout

How to create PLIST files programmatically in iphone

Asked 2011-07-14T17:09:45.673
15

I was looking to create plist file in my application Documents folder programmatically in objective C. I created a folder in documents directory :

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectoryPath = [paths objectAtIndex:0];
NSString *path = [NSString stringWithFormat:@"%@/Data.plist", documentsDirectoryPath];

I am trying to create plist file which will look like an XML file. /**** Required XML File ****/

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
    <key>height</key>
    <integer>4007</integer>
    <key>name</key>
    <string>map</string>
    <key>width</key>
    <integer>6008</integer>
</dict>
</array>
</plist>

/****Achieved file through code ****/

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>height</key>
    <string>4007</string>
    <key>name</key>
    <string>map</string>
    <key>width</key>
    <string>6008</string>
</dict>
</plist>

The required file needs an array and inside the array we have a dictionary object. How can I change this ? I also know how to write the file to the path, but the major issue is how to create plist file and then read it ?

Edit
Report

1 Answer

3

Note that if you just want one plist file to keep a data, you don't really have to create and save any. There is a mechanism called NSUserDefaults. You do something like

[[NSUserDefaults standardUserDefaults] setInteger:1234 forKey:@"foo"];

and you read as in

NSInteger foo=[[NSUserDefaults standardUserDefaults] integerForKey:@"foo"];
// now foo is 1234

Preparing the file to save, writing it to the file, reading it again when the app is next launched, is done automatically for you!!

Read the official reference and the official document.

answered 2011-07-14T17:34:03.810

Your Answer