Estás depurando un problema de Core Data en tu app de iOS o macOS. Los datos se ven incorrectos en la interfaz y necesitas ver qué está realmente almacenado en el archivo SQLite subyacente. El editor de modelos de Core Data de Xcode muestra tu esquema, pero no te permite explorar los datos persistidos reales. Así que empiezas la búsqueda: encuentras el contenedor de la app, ubicas el archivo .sqlite, abres Terminal y comienzas a ejecutar consultas en bruto contra tablas con nombres como ZUSER y ZPOST, donde cada columna está prefijada con Z y nada coincide intuitivamente con los nombres de tus entidades.
Los Archivos SQLite de Core Data Son Difíciles de Inspeccionar
Core Data usa SQLite como su almacén persistente predeterminado, pero añade sus propias convenciones. Los nombres de entidades reciben un prefijo Z en el nombre de la tabla. Los atributos obtienen nombres de columna prefijados con Z. Las relaciones se almacenan como claves foráneas enteras en columnas que quizás no reconozcas de inmediato. Existe una tabla Z_METADATA y una tabla Z_PRIMARYKEY que Core Data gestiona internamente.
Nada de esto está documentado de forma que facilite la inspección manual. Terminas ejecutando consultas como SELECT * FROM ZUSER; y tratando de relacionar las columnas con prefijo Z con tu modelo de objetos gestionados. En Terminal, sin resaltado de sintaxis y sin cuadrícula visual, esto es tedioso.
Xcode no ayuda aquí. No hay un navegador de SQLite integrado. La herramienta Instruments puede perfilar operaciones de Core Data, pero no te mostrará los datos reales de las filas. Necesitas una herramienta aparte.
Explora Archivos SQLite de Core Data Con Tome
Tome abre los archivos SQLite de Core Data como cualquier otra base de datos. Navega hasta el contenedor de tu app, encuentra el archivo .sqlite y ábrelo en Tome. Cada tabla con prefijo Z aparece en la barra lateral. Haz clic en una para ver todas las filas y sus valores en una cuadrícula desplazable.
Ve los Datos Reales
Cuando tu app muestra el valor incorrecto, abre el archivo SQLite en Tome y revisa los datos realmente almacenados. ¿El valor está mal en la base de datos, o es un error de obtención/visualización? Tener acceso visual a los datos en bruto responde esta pregunta en segundos.
Inspecciona Relaciones y Metadatos
Explora la tabla Z_PRIMARYKEY para ver cómo Core Data rastrea los tipos de entidad y las claves primarias. Revisa las columnas de claves foráneas para verificar que las relaciones se almacenan correctamente. Inspecciona Z_METADATA para ver el hash de la versión del modelo.
Ejecuta Consultas de Diagnóstico
Usa el editor de consultas SQL de Tome para escribir uniones entre las tablas con prefijo Z de Core Data, filtrar registros específicos o buscar filas huérfanas que puedan indicar un problema de migración. El resaltado de sintaxis y el autocompletado lo hacen más fácil que ejecutar consultas en bruto en Terminal.
Seguro de Inspeccionar, Fácil de Encontrar
Para el Simulador, el archivo SQLite de tu app vive muy dentro de ~/Library/Developer/CoreSimulator/. Para una app de macOS, revisa ~/Library/Containers/ o ~/Library/Application Support/. Una vez que hayas localizado el archivo, arrástralo al ícono del dock de Tome y comienza a explorar.