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.