Hey there,
I'm working on my first application using coredata. Everything works perfectly. When I debug the app on my device (without it already being installed on the device), then quit the app, manually modify the sqlite dbase then debug the app again, it appears to be using the old version of the database. If the two sqlite files have the same name, is there a way to tell it to just replace what's there?
Here's a snippet from my code:
NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"mydata.sqlite"];
/*
Set up the store.
For the sake of illustration, provide a pre-populated default store.
*/
NSFileManager *fileManager = [NSFileManager defaultManager];
// If the expected store doesn't exist, copy the default store.
if (![fileManager fileExistsAtPath:storePath]) {
NSLog(@"copying default from sqlite");
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"mydata" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
}
}
NSURL *storeUrl = [NSURL fileURLWithPath:storePath];
As you can see, if it doesn't find the database initially it loads the sqlite file from the app. Other than changing the name of the sqlite file or using a setting, is there a way to say flush whatever you have if you have anything, and start over from scratch?
I'm concern about users buying the app then when I release an update, they are still seeing data from the old version of the database.
Thanks, Howie