Je suis arrivé à un point où mon application fonctionne parfaitement sur le simulateur mais quand je le charge sur mon iPhone la base de données ne s'enregistre pas. Je sais que j'ai quelque chose de mal avec mon initialisation et la copie de la DB. La base de données n'est pas enregistrée dans l'ensemble d'applications, je suppose. Je voudrais savoir ce que je fais de mal.Base de données SQLite ne copiant pas sur l'iPhone
Je prévois d'éditer les données dans la base de données, donc je voudrais que cela soit pris en compte.
Voici le code:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
// Use this section to bring in database and populate the array
dbPath = @"https://stackoverflow.com/users/jr/Documents/projectReference/reference.db";
FMDatabase *database = [FMDatabase databaseWithPath:dbPath];
[database open];
// Init the subjects Array
categories = [[NSMutableArray alloc] init];
subjects = [[NSMutableArray alloc] init];
quotes = [[NSMutableArray alloc] init];
quoteMap = [[NSMutableArray alloc] init];
[self copyDatabaseIfNeeded];
// Open the database from the users filessytem
NSLog(@"Going into the while loop for categories");
FMResultSet *result_categories = [database executeQuery:@"select distinct category from SUBJECT"];
}
- (void) copyDatabaseIfNeeded {
//Using NSFileManager we can perform many file system operations.
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSString *newdbPath = [self dbPath];
BOOL success = [fileManager fileExistsAtPath:newdbPath];
if(!success) {
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"reference.db"];
success = [fileManager copyItemAtPath:defaultDBPath toPath:newdbPath error:&error];
NSLog(@"Database file copied from bundle to %@", newdbPath);
if (!success)
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
} else {
NSLog(@"Database file found at path %@", newdbPath);
}
}
Merci et cela l'a résolu. – jroyce