2009-08-27 17 views

Respuesta

34

Para explicar lo que escribió Jergason. Core Data es un mapeo relacional de objetos (ORM) similar a Hibernate en el mundo de Java. Resume la mecánica real de almacenar datos (como archivos SQL o .plist) lejos de su código. Su código solo necesita tratar con un marco orientado a objetos coherente para recuperar objetos, actualizarlos y conservarlos. Core Data admite cierto nivel de transacciones ACID, pero no confirmaciones de dos fases. En el iPhone, la configuración predeterminada para Core Data envuelve las bases de datos sqlite con la capa ORM.

Uno de los beneficios secundarios interesantes de utilizar Core Data es la herramienta para diseñar visualmente su modelo de datos y generar las clases de modelo. Si tiene un modelo grande, esto puede ahorrar mucho tiempo en las clases de modelo de codificación manual.

Otro beneficio interesante de Core Data es su capacidad para migrar su base de datos de una versión de modelo a otra. Esto es muy importante en el mundo del iPhone, ya que es posible que desee modificar su modelo de datos de una versión de su aplicación a la siguiente. Core Data proporciona una forma bastante sencilla de migrar los datos persistentes del modelo anterior al nuevo sin tener que escribir una tonelada de código de migración. Usted solo define un mapa de migración y agrega unas 'pocas' líneas de código a su delegado de aplicaciones y las cosas se convierten para usted.

Core Data en el iPhone está diseñado para el entorno móvil. Si busca todas las filas de una tabla en una matriz, en realidad no lo arrastra todo a la memoria. Crea lo que Apple llama un conjunto de fallas que es solo un objeto que se parece a un NSArray. Cuando accede a los diversos elementos de la matriz, Core Data obtiene esas entidades (filas) en el uso, no en la consulta. Ahorra memoria y ayuda a que tu aplicación funcione más rápido.

Con todo, es una capa ORM bastante completa, no tan rica como Hibernate, pero suficiente para este entorno.

16

Core Data es esencialmente una forma de construir su modelo visualmente, una especie de Interface Builder para el modelo. Crea entidades que representan clases modelo y define relaciones entre ellas. En lugar de tener que codificar una clase Persona que tiene una instancia de una clase de dirección, puede simplemente crearlas visualmente arrastrando y soltando. Hay mucho más que eso, pero esa es una característica principal que creo que es genial.

Ver también this Documentación de Apple.

Cuestiones relacionadas