views:

474

answers:

2

I have a plist which I am changing:

NSString *finalPath = [path stringByAppendingPathComponent:@"KeyFrameFileByMovie.plist"];
NSMutableDictionary *keyFrameFileByMovie = [[NSMutableDictionary alloc] initWithContentsOfFile:finalPath];
[keyFrameFileByMovie setValue:keyFrameName forKey:movieName];
BOOL isOk = [keyFrameFileByMovie writeToFile:finalPath atomically:YES];

On the simulator isOk is 1 on the device isOK is 0

I don't think it is a case sensative issue, because I have a getting code that works:

NSString *finalPath = [path stringByAppendingPathComponent:@"KeyFrameFileByMovie.plist"];<br>
NSDictionary *plistData =[[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];

Why is does writeToFile fail on the device?

+3  A: 

What's the path you're originally starting with? Remember, the iPhone is case-sensitive, but the Mac is (usually) not, so that might be tripping you up. I would log finalPath to the log in both cases, and visually verify they're the same.

Ben Gottlieb
This almost assuredly the issue.
Corey Floyd
I am sorry, I worked until very late... the isOk return 0 on device which means this is other problem
idober
+3  A: 

iPhone application has very strict directory structure. Unfortunately the permissions on the device vs simulator are diferent. So the only problem here can be that you are not saving in the Documents directory but in the MainBundle dir.

In the example above, what is the path value?

marcin.walus