Speichern eines NSImage in einem Kerndatenmodell

7

Was ist der richtige Weg, um ein NSImage in einem Core Data Model zu speichern? Ich habe angenommen, dass ein Attribut zu einer Entität hinzugefügt wird, und geben Sie den Typ "Binär" sollte funktionieren, aber es funktioniert nicht. Ich habe eine Tabelle mit einer Spalte von NSImageCells und es zeigt nichts.

    
Quinn Taylor 01.03.2009, 06:04
quelle

4 Antworten

10

Wenn Sie in 10.5+ arbeiten können, ist es am einfachsten, die NSImageRep s für das Bild im Attribut "Transformable" zu speichern. Standardmäßig verwenden die transformierbaren Attribute NSCoding, um ihre Werte beim Zugriff zu archivieren und zu archivieren. Dies erspart Ihnen das Schreiben von benutzerdefinierten Getter / Setter. Wenn Sie Lust haben, können Sie eine benutzerdefinierte NSValueTransformer schreiben, die ein Bild in eine akribierte Version seiner Darstellungen konvertiert und umgekehrt. Wenn Sie 10.4 verwenden, müssen Sie benutzerdefinierte Getter / Setter schreiben (siehe Apples Dokumentation zum Erstellen von Nicht standardmäßige persistente Attribute . Sie können die Bildwiederholungen des Bildes erhalten, indem Sie die Nachricht NSImage a -representations senden.

Wenn Sie die Bilder in einer Benutzeroberfläche über Bindungen anzeigen möchten, sollten Sie auch die Anzeigen von Bildern mit Bindings im Abschnitt "Themen zur Programmierung von Cocoa Bindings".

    
Barry Wark 02.03.2009 04:24
quelle
8

Dies beantwortet nicht die genaue Frage, die Sie gestellt haben, aber je nachdem, wie viele Bilder Sie speichern, kann es effizienter sein, nur Pfade oder URLs zu den Bildern zu speichern, die an Ihrem eigenen Ort gespeichert sind, und diese nach Bedarf zu laden.

    
sbooth 01.03.2009 12:46
quelle
7

Sie müssen eine NSData-Repräsentation davon erstellen.

Sehen Sie sich Non an -Standard Persistent Attribute . Vor allem der Abschnitt unter Transformable Attributes, und Custom Code, wenn das dich nicht aussortiert.

    
Matthew Schinckel 01.03.2009 06:40
quelle
1

Hier ist eine wirklich einfache Implementierung

Ссылка

    
Fabio Russo 20.05.2011 19:26
quelle