Los componentes de Core Data, encargados de todas las operaciones relacionadas con el manejo de la base de datos, se conocen como la pila de Core Data (Core Data Stack). La pila de Core Data se compone de uno o más ManagedObjectContexts, conectados a un único PersistentStoreCoordinator que, a su vez, está conectado con uno o más PersistentStores.
La pila de Core Data existe para listar, crear y manipular instancias de NSManagedObject.
A continuación, veamos cada uno de los componentes de la pila:
NSManagedObjectModel
Describe el esquema de la base de datos, o sea: sus entidades y relaciones.
NSPersistentStore
Escribe y lee datos en un almacén de datos, dada la configuración que se haya elegido. Existen cuatro tipos de almacenes: SQLite (por defecto), XML (no disponible en iOS), binario y en memoria. Este último es utilizado para automatizar pruebas.
NSPersistentStoreCoordinator
Como puede haber múltiples NSPersistentStore, que pueden ser incluso de tipos diferentes, un NSPersistentStoreCoordinator oculta los detalles de implementación de cómo están configurados los almacenes. De esa manera, un NSManagedObjectContext puede ignorar completamente si se está trabajando con un almacén SQLite o XML.
NSManagedObjectContext
Permite crear, solicitar o actualizar entidades de la base de datos. Un contexto es una caja de arena para manipular los objetos NSManagedObject, porque cualquier cambio que se haga solo se persistirá, si dice explícitamente al contexto que escriba en memoria. Ninguna instancia NSManagedObject existe sin un contexto asociado.
NSPersistentContainer
Mantiene a todas las instancias de la pila de Core Data, y orquesta todas las operaciones entre las clases NSManagedModel, NSPersistentStoreCoordinator, NSPersistentStore y NSManagedObjectContext.


Top comments (0)