2009-03-01 32 views
7

¿Cuál es la forma correcta de almacenar un NSImage en un Core Data Model? Asumí que agregar un atributo a una entidad y darle el tipo "Binario" debería funcionar, pero no funciona. Tengo una tabla con una columna de NSImageCells y no muestra nada.Almacenamiento de un NSImage en un Core Data Model

Respuesta

7

Tendrá que crear una representación NSData de la misma.

Eche un vistazo a Non-Standard Persistent Attributes. Especialmente la sección bajo Atributos Transformables y Código Personalizado si eso no lo soluciona.

8

Esto no responde exactamente a la pregunta que hizo, pero dependiendo de la cantidad de imágenes que almacene, puede ser más eficiente almacenar solo rutas o URL a las imágenes, guardarlas en su propia ubicación y cargarlas según sea necesario .

10

Si puede trabajar en 10.5+, la manera más fácil es almacenar el NSImageRep s para la imagen en el atributo "Transformable". De forma predeterminada, los atributos transformables usan NSCoding para archivar sus valores en conjunto y desarchivar en el acceso. Esto le ahorra tener que escribir getters/setters personalizados. Si desea hacerse elegante, puede escribir un NSValueTransformer personalizado que convierta una imagen en una versión acrhived de sus representaciones y viceversa en get. Si está utilizando 10.4, entonces usted tiene que escribir captadores personalizados/set (ver documentos de Apple en la creación de Non-standard persistent attributes. Puede obtener repeticiones de imagen de la imagen mediante el envío de la NSImage un mensaje -representations.

Si desea mostrar las imágenes en una interfaz de usuario a través de fijaciones, también debe leer la sección de los Displaying Images Using Bindings cacao fijaciones programación Temas.

1

Aquí es una aplicación muy fácil

http://objectivesheep.com/blog/nsimage_coredata/

+0

la página vinculada ya no existe. –

+0

Eres una estas en lo correcto. Déjame arreglar eso ... –

+0

Ok, actualicé el enlace. ¡Gracias por el aviso! –