¿Cómo lee iOS qué archivo de tabla de la base de datos?
1. ¿Qué es un Sandbox?
Cada aplicación de iOS crea un directorio (carpeta) del sistema de archivos para sí misma. Este espacio independiente, cerrado y seguro se llama arenero.
2. Mecanismo sandbox
El sandbox es un sistema de seguridad.
Se estipula que la aplicación solo puede acceder a archivos en la carpeta (sandbox) creada para la aplicación, y no puede acceder al contenido en otros sandboxes (iOS8 tiene acceso parcialmente abierto).
Todos los archivos que no son de código se almacenan en este lugar, como imágenes, sonidos, plists, bases de datos sqlite, archivos de texto, etc.
3. Características del mecanismo sandbox:
El ámbito de actividad de cada aplicación se limita a su propio sandbox.
No puedes cruzar libremente tu propia zona de pruebas para acceder al contenido de otras zonas de pruebas de aplicaciones.
Las aplicaciones requieren autorización para solicitar o recibir datos.
4. Hay dos formas de encontrar el sandbox de la aplicación.
Primer método:
Haga clic en [Ir]-gt; mantenga presionada la tecla Alt al mismo tiempo-gt; seleccione [Biblioteca de recursos]-->; >simulador de núcleo->dispositivo->59db 5213 fa 4c 4 dacb 3671326 e 0201c 01->datos->contenedor->datos->aplicación->01ea 9151e 7 BC 4a 19a 39d 38d 61d 4356 A0
La ruta en fuente roja indica la ruta del dispositivo (emulador).
La ruta en fuente azul indica la ruta del entorno limitado de la aplicación.
Implementación de código (por ejemplo: obtener la ruta del directorio de documentos y caché):
Segundo tipo:
Hay tres en el directorio sandbox de la aplicación. Carpetas: Documentos, Biblioteca (caché y directorios de preferencias a continuación) y tmp.
Documentos: iTunes sincronizará los archivos que nunca se eliminarán, se realizará una copia de seguridad en la computadora y se podrán sacar de la computadora cuando sea necesario (archivos demasiado grandes, como videos, audios, imágenes, etc., no se puede almacenar aquí). No se eliminan al salir del programa, pero se sincronizan.
Biblioteca:
Caché: esta carpeta se utiliza principalmente para almacenar en caché videos, audio, imágenes y otro contenido (las imágenes almacenadas en caché de SDWebImage existen en esta carpeta), cuando el programa se cierre No será eliminado o sincronizado.
Preferencias: guarde las preferencias de la aplicación. iTunes realizará automáticamente una copia de seguridad de este directorio y utilizará NSUserDefaults para recuperar el contenido de este directorio.
Tmp: Carpeta temporal que se utiliza para acceder a datos temporales. Los datos temporales también se eliminan cuando se eliminan. Cuando se reinicie la aplicación, se eliminará y no se realizará una copia de seguridad. iTunes no sincronizará directorios.
Implementación de código (obtención de rutas de directorio de documentos y bibliotecas):
Método de búsqueda de archivos tmp:
Segundo, escritura y lectura de objetos simples
1 e iOS proporcionan cuatro tipos de objetos simples que pueden acceder directamente a archivos: NSString (cadena), NSArray (matriz), NSDictionary (diccionario) y NSData (datos). incluyendo sus subclases.
2. Escritura/lectura de objetos simples:
Ejemplo de código (cadena):
El archivo se escribió correctamente en el sandbox:
Ejemplo de código (imagen):
Imagen escrita correctamente en el sandbox:
En tercer lugar, escritura y lectura de objetos complejos
1. hace referencia a una clase de datos que no existe en el marco. Por ejemplo, la clase Persona definida por el usuario no puede escribir en un archivo en el programa a través de este método writeToFile.
2. Archivar y archivar (solución)
Archivar es convertir un objeto complejo (un objeto de tipo Persona personalizado) en un objeto de tipo NSData, es decir, convertir un objeto complejo. en un objeto de tipo NSData. Localización de objetos. Este objeto debe ajustarse al protocolo NSCoding e implementar dos métodos en el protocolo.
Objeto complejo->Archive-gt;ns data-gt;writeToFile.
Desarchivar es convertir NSData en un objeto complejo.
Leer archivo->datos ns->Desarchivar->objeto complejo.
Ejemplo de código: