Acabo de comenzar con el desarrollo de iPhone. En uno de los ejemplos en los que tuve que mostrar algunos datos almacenados en sqlite db en una vista de tabla en un controlador tabbar, tuve que mover un archivo sqlite del paquete de aplicaciones a la carpeta de documentos.iPhone: ¿Cómo copiar un archivo de los recursos a los documentos?
I utiliza la plantilla de aplicación - Ios> Aplicación> aplicación basada en la ventana para el iPhone (Usado datos básicos para el almacenamiento)
En la plantilla generada por XCode (SDK de base ajustado en último iOS = 4,2), la siguiente código estaba allí ...
- (NSURL *)applicationDocumentsDirectory {
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
al tratar de obtener una ruta a la carpeta de documentos, he utilizado el método dado anteriormente como esto ...
NSString *documentDirectory = [self applicationDocumentsDirectory];
esto dio un Warni ng - warning: incompatible Objective-C types initializing 'struct NSURL *', expected 'struct NSString *'
Así que cambió el código siguiente a ...
// Added the message absoluteString over here
NSString *documentDirectory = [[self applicationDocumentsDirectory] absoluteString];
NSString *writableDBPath = [documentDirectory stringByAppendingPathComponent:@"mydb.sqlite"];
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"mydb.sqlite"];
BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success) {
NSLog(@"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
Y BOOM !!! Dio el error que - 'Failed to create writable database file with message 'The operation couldn’t be completed. No such file or directory'.'
¿Cómo puedo encontrar la ruta al directorio de documentos ya que el método applicationDocumentsDirectory
generado por la plantilla XCode no funciona para mí.
Además, ¿alguien puede arrojar algo de luz sobre el propósito del método applicationDocumentsDirectory
dado anteriormente?
Gracias
que estaba recibiendo de error porque no estaba añadiendo el nombre del archivo en el writableDBPath. Este ejemplo me ayudó a solucionarlo. ¡Gracias! +1 – voghDev