usted tiene que empezar a añadir su base de datos en su proyecto Xcode, por lo que se agregará en la carpeta del paquete, donde puede encontrarlo a través del código:
[NSBundle mainBundle]
Es la única carpeta donde puede agregar archivos a través de xcode al "compilar" su aplicación (eventualmente con subcarpetas, pero no con carpetas del "sistema" como "documentos") ahora solo debe tener en cuenta que la carpeta del paquete principal es solo "solo lectura", por lo que no puede utilizar su base de datos allí con privilegios de escritura. Así que la forma normal es:
1) cuando desee utilizar su base de datos, verifique mediante el código si existe en la carpeta de la aplicación: documentos. Por supuesto, la primera vez no lo hace, por lo
2) copiarlo del haz principal
- (BOOL)transferDb {
NSError **error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"yourData.db"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
NSString *bundle = [[ NSBundle mainBundle] pathForResource:@"preferenze" ofType:@"plist"];
[fileManager copyItemAtPath:bundle toPath:path error:error];
return YES;
}
return NO;
}
3) utilizarla (r/w) en los documentos de la carpeta
ps: y (por supuesto) tenga en cuenta que cuando utiliza/edita/escribe db en iPhone/simulator, tal vez agregue registros, el del paquete principal y, por supuesto, el de su mac/proyecto no se actualizará, no se le agregarán registros, por lo que si por algún motivo elimina su aplicación en iPhone/simulador (o "limpia todos los destinos" mediante el menú "compilación" de xCode), el método de verificación/copia copie el db "virgen" nuevamente en la carpeta de documentos, para que pierda todos sus cambios ...
me gustaría simplemente preguntar si el código sigue siendo válida para iOS 8 y Yosemite como la ubicación de los archivos de SQLite ha cambiado –