Qual è il modo corretto per memorizzare un NSImage in un modello di dati di base? Ho assunto l'aggiunta di un attributo a un ente e dandogli il tipo "binario" dovrebbe funzionare, ma non funziona. Ho una tabella con una colonna di NSImageCells e non mostra nulla.Memorizzazione di un NSImage in un Core Data modello
risposta
Avrai bisogno di creare una rappresentazione NSData di esso.
Dai un'occhiata alla Non-Standard Persistent Attributes. Soprattutto la sezione sotto Attributi trasformabili e Codice personalizzato se questo non risolve il problema.
Questo non risponde alla domanda esatta che hai chiesto, ma a seconda di quante immagini stai memorizzando può essere più efficiente memorizzare solo percorsi o URL alle immagini, salvati nella tua posizione, e caricarli come richiesto .
Se è possibile lavorare in 10.5+, il modo più semplice è archiviare i valori NSImageRep
per l'immagine nell'attributo "Trasformabile". Per impostazione predefinita, gli attributi trasformabili utilizzano NSCoding per archiviare i loro valori sul set ed estrarlo in materia di accesso. Ciò ti evita di dover scrivere getter/setter personalizzati. Se vuoi essere elegante, puoi scrivere un numero personalizzato NSValueTransformer
che converte un'immagine in una versione acrhived delle sue rappresentazioni e viceversa in get. Se stai usando 10.4, allora devi scrivere getter personalizzati/setter (vedi Documentazione di Apple sulla creazione Non-standard persistent attributes. È possibile ottenere ripetizioni immagine dell'immagine inviando il NSImage
un messaggio -representations
.
Se si desidera visualizzare le immagini in un'interfaccia utente tramite attacchi, si dovrebbe anche leggere la sezione Displaying Images Using Bindings dei cacao attacchi di programmazione argomenti.
Ecco un'implementazione molto semplice
la pagina collegata non esiste più. –
È un Hai ragione. Lascia che ti aggiusti ... –
Ok, aggiorna il link. Grazie per il testa a testa! –