Can't Write iPhone Prefrence Lists

I was confounded by an issue writing a plist which worked fine in the iPhone simulator but didn't work on an actual iPhone. The issue was one of permissions. You can't write like this:

NSString *file = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"];
[dictionary writeToFile:file atomically:YES];

on the iPhone but you can in the simulator. Technically, writing here violates the sandbox paradigm on the iPhone.

However, writing to the temp directory of the sandbox works.

NSString *file = [NSTemporaryDirectory( ) stringByAppendingPathComponent:@"Settings.plist" ];
[dictionary writeToFile:file atomically:YES];

This was somewhat obscured in the Apple documentation because the plist documentation was originally written for OS X programming so it is hard to separate what examples are applicable to the iPhone and what isn't.

Tags

Trackbacks

To send a trackback, use the URL of this story appending ?page=tb at the end.

Comments (0)

Leave a Comment

Name:
Location: (city / state / country)
Email: (not published / no spam)

No HTML is allowed. Cookies must be enabled to post. Your comment will appear on this page after a moderator OKs it. Offensive content will not be published.

Click the firetruck to submit your comment.

To create links in comments:

[link:http://anders.com/] becomes http://anders.com/

[link:http://anders.com/|Anders.com] becomes Anders.com

Notice there is no rel="nofollow" in these hrefs. Links in comments will carry page rank from this site so only link to things worthy of people's attention.

About Me:


Name: Anders Brownworth
Home: Cambridge, MA, USA
Work: Mobile application and GSM research at Bandwidth.
Play: Technology, World Traveler and Helicopter Pilot
Follow:

Books:

Lars Brownworth's book on Byzantine History spawned from our 12 Byzantine Rulers podcast:



or get the Audiobook in iTunes

Contact Me:

Name:
Email:

Click the firetruck to submit. (Why?)

Want to stop form spam on your website? Try JustHumans.com.
user:
pass: