He leído las pautas de almacenamiento de datos de Apple y estoy realmente confundido en cuanto a dónde debo guardar los archivos de la base de datos sqlite que estoy creando en mi aplicación. Quiero leer de los archivos sqlite incluso cuando la aplicación está en el modo Offfline. Leí que esos archivos creados deberían guardarse en la Biblioteca/cachés con el indicador "do not backup" establecido. Por favor sugiérame el enfoque correcto para hacer lo mismo.¿Debo escribir el archivo de base de datos sqlite en el directorio de Documentos o en la Biblioteca/Cachés?
Respuesta
La respuesta depende de cómo se crean los archivos de base de datos:
According to the Data Storage Guidelines page:
Sólo los documentos y otros datos que son generados por los usuarios, o que no pueden de otra manera ser recreada por su aplicación , debe almacenarse en el directorio /Documents y automáticamente será respaldado por iCloud con .
Los datos que se pueden descargar de nuevo o regenerar deben almacenarse en el directorio/Library/Caches. Los ejemplos de archivos que debe colocar en el directorio de Caches incluyen archivos de caché de base de datos y contenido descargable, como el utilizado por la revista, periódico, y aplicaciones de mapas.
Esto parece relativamente claro para mí: si su aplicación mediante programación crea algo o genera datos que desea guardar, lo puso en la carpeta "Caches". Si se trata de algo único que generan los propios clientes (escribiendo en un teclado o algo que intervinieron manualmente y lo hicieron), colóquelo en "Documentos".
"No hacer copia de seguridad" significa que los archivos nunca se envían a iCloud y, si se pierden, se deben volver a crear desde cero (o volver a instalar).
Esto puede ayudarlo. Copiar la base de datos en el directorio de documentos será lo suficientemente bueno. Los archivos del paquete son de solo lectura. En algunas situaciones. Si necesita actualizar en cualquier momento, la mejor manera es copiar la base de datos al principio si no existe en el directorio de documentos.
El código de ejemplo para la copia de la base de datos de los documentos del directorio es el siguiente:
-(void) checkAndCreateDatabase {
// Setup some globals
NSString *databaseName = @"AnimalDatabase.sql";
// Get the path to the documents directory and append the databaseName
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
NSString *databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
// Check if the SQL database has already been saved to the users phone, if not then copy it over
BOOL success;
// Create a FileManager object, we will use this to check the status
// of the database and to copy it over if required
NSFileManager *fileManager = [NSFileManager defaultManager];
// Check if the database has already been created in the users filesystem
success = [fileManager fileExistsAtPath:databasePath];
// If the database already exists then return without doing anything
if(success) return;
// If not then proceed to copy the database from the application to the users filesystem
// Get the path to the database in the application package
NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName];
// Copy the database from the package to the users filesystem
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];
[fileManager release];
}
Usted puede remitir este Tutorial Los archivos, contenidos en los documentos de directorio es leído, el modo de escribir, para que pueda leer el contenido de la base de datos.
- 1. ¿SQLite bloquea el archivo de base de datos en lecturas?
- 2. Ubicación recomendada para el almacenamiento de documentos, en la base de datos o en otro lugar?
- 3. ¿Cómo debo proteger una base de datos SQLite en iOS?
- 4. donde solr almacena el índice de búsqueda, en la base de datos o en el archivo?
- 5. ¿Debo escribir documentos HTML5 de Polyglot?
- 6. Android explore la base de datos SQLite en el teléfono
- 7. Contenido seguro en el directorio de Documentos
- 8. Android cambiar el nombre de la base de datos SQLite
- 9. Cifrar base de datos SQLite en C#
- 10. Cómo saber si el archivo de base de datos sqlite es válido o no
- 11. ¿Dónde debo almacenar la base de datos SQLite para mi aplicación de iPhone?
- 12. Recomendado patrón de diseño para escribir en la base de datos SQLite en Android
- 13. ¿Debo recrear dinámicamente un PDF, en lugar de almacenarlo en la base de datos o en el sistema de archivos?
- 14. ¿Puedo encriptar la base de datos SQLite?
- 15. Base de datos SQLite en Javascript localmente
- 16. Actualizaciones de la aplicación, NSURL y el Directorio de documentos
- 17. Insertar archivo binario en la base de datos SQLite con Python
- 18. herencia en la base de datos de documentos?
- 19. ¿Debo escribir prueba de integración o prueba de unidad?
- 20. Crear base de datos SQLite en android
- 21. Seguridad de la base de datos Sqlite
- 22. ¿Debo usar un archivo de texto o una base de datos?
- 23. Agregar archivo HTML a la base de datos SQLite
- 24. Base de datos SQLite en tarjeta SD
- 25. Guardando ArrayList en la base de datos SQLite en Android
- 26. Inserción segura de datos en la base de datos SQLite con el apóstrofo
- 27. El archivo de base de datos está inexplicablemente bloqueado durante la confirmación SQLite
- 28. Obtener una matriz de directorios en el directorio de documentos
- 29. Cuándo debo llamar a un método cercano de una base de datos SQLite en Android
- 30. base de datos está bloqueado en SQLite
He desarrollado una aplicación completamente estática. Estoy almacenando datos de más de 4 mb de tamaño. Sin este contenido, la aplicación no funcionará. En mi caso, ¿dónde debo guardar la base de datos local (carpeta de documentos o carpeta de la biblioteca) – Warrior
[Bueno, veo que ya lo ha hecho como una pregunta separada] (http://stackoverflow.com/questions/16767861/where-to- save-the-local-db-created-for-iphone-app), entonces yo (u otra persona) buscaré la respuesta por usted –
¿Qué hay de las nuevas extensiones y reloj? –