views:

278

answers:

1

I have a plist file in my resources group in xcode. I am trying to copy this into my documents directory on app launch. I am using the following code (taken from a sqlite tutorial):

BOOL success;
NSError *error;

NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingString:@"ActiveFeedsPlist.plist"];

success = [fileManager fileExistsAtPath:filePath];
if (success) return;

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingFormat:@"ActiveFeedsPlist.plist"];
success = [fileManager copyItemAtPath:path toPath:filePath error:&error];

if (!success) {
    NSAssert1(0, @"Failed to copy Plist. Error %@", [error localizedDescription]);
}

I am given the error " * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed to copy Plist. Error Operation could not be completed. No such file or directory'" in the console however.

Any idea what is wrong?

Thanks

+1  A: 

You're missing a file separator:

... stringByAppendingString:@"/ActiveFeedsPlist.plist"];

or, better, use:

... stringByAppendingPathComponent:@"ActiveFeedsPlist.plist"];
nicerobot
or stringByAppendingPathComponent:@"ActiveFeedsPlist.plist"
dbarker
In which case, it'd be better to use `-stringByAppendingPathComponent:`. (D'oh, beaten by a minute!)
Wevah
@dbarker, great minds! LOL I was editing with that at the same time you posted the comment.
nicerobot