I was pretty sure that writing in the main Bundle isn\'t possible in iOS ... for example an operation like :
NSString *path = [[NSBundle mainBundle] pathFor
That's not a link to the main bundle. That's a path to the resources folder, and a plist within that folder.
Hence the function name pathForResource...
Everything in the main bundle is cryptographically signed when you compile the app. The resources folder isn't though. You can write to and from that freely.
for @jrturton
// we need to get the plist data...
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Symptoms" ofType:@"plist"];
NSMutableArray *dataArray = [[NSMutableArray alloc] initWithContentsOfFile:plistPath];
// add a new entry
NSDictionary *addQuestion = [[NSDictionary alloc] initWithObjectsAndKeys:@"Blank.png",@"Icon",
[NSString stringWithFormat:@"%i",r],@"ID",
[titleTextField text],@"Title",
[questionTextField text],@"Text",
qnType,@"Type",
@"1",@"Custom",
[NSArray arrayWithObjects:@"Yes",@"No",nil],@"Values",
[unitsTextField text],@"Units",
nil];
[dataArray addObject:addQuestion];
[addQuestion release];
// rewrite the plist
[dataArray writeToFile:plistPath atomically:YES];
The example is for OS X, which isn't quite as strict with permissions as iOS.
I'd be surprised if you are able to do that for much longer (if you can at all now) in a Mac App Store application bundle, though.
It could be worth filing a bug regarding the documentation.