2010-07-28 22 views
11

Tengo problemas para entender cómo funciona Core Data conceptualmente y en términos de código.Introducción a Core Data

Entiendo que hay un coordinador y un contexto. También entiendo que hay administración estatal. Como trabajan juntos?

No entiendo cómo puedo almacenar, por ejemplo, una imagen y algunas cuerdas como un objeto.

Digamos que quiero recuperar la imagen y las cuerdas más adelante. ¿Qué debo hacer?

¿Dónde guardo mi estado? ¿Cómo?

¿Cómo se ve mi código? Realmente apreciaría una muestra de código básico aquí, porque estoy realmente confundido.

Respuesta

25

Estos son algunos de los mejores tutoriales que he encontrado:

En cuanto a sus preguntas:

Entiendo que hay un coordinador y un contexto. También entiendo que hay administración estatal. ¿Cómo funcionan juntos?

El coordinador de tienda persistente es el que gestiona el lugar donde se almacenan los datos, ya sea una base de datos SQLlite o un archivo XML o lo que sea. El coordinador es la abstracción, por lo que no tiene que preocuparse por qué tipo de almacenamiento se encuentra en el back-end.

El contexto del objeto administrado es cómo interactúa con el coordinador de la tienda permanente. Piense en ello como su cuaderno de arañazos. Usted crea y modifica Objetos Administrados desde el Contexto del Objeto Administrado.

No entiendo cómo puedo almacenar, por ejemplo, una imagen y algunas cuerdas como un objeto. Digamos que quiero recuperar la imagen y las cadenas más tarde. ¿Qué debo hacer?

Si mira a través de algunos de los tutoriales anteriores, verá cómo extraer objetos del contexto del objeto gestionado. Un NSString simplemente se almacena como un atributo de cadena en un objeto administrado, así:

[managedObject setValue:@"TestString" forKey:@"SomeStringProperty"]; 

No estoy muy seguro acerca de las imágenes, ya que nunca he guardado una imagen en la base de datos antes.Sé que todo lo que se puede serializar se puede almacenar como un atributo transformable. Here's a post about storing UIImages in Core Data

¿Dónde puedo guardar mi estado? ¿Cómo?

Simplemente llame al método 'guardar' en el contexto de su objeto gestionado. De este modo:

[context save:&error] 
+2

Puede almacenar objetos en NSData datos básicos, por lo que para guardar una imagen, lo consigue de datos (probablemente utilizando UIImagePNGRepresentation()) y almacenar esa. Para recuperar la imagen, obtenga el objeto NSData de Core Data y luego use el método + imageWithData de UIImage para obtener un UIImage. –

+0

Ah ... Ray Wenderlich - Tiene un buen sitio. – Moshe

+0

El segundo tutorial que vinculó regresa con una Solicitud incorrecta de error 400 al momento de escribir este comentario. – BinaryMisfit