Desidero memorizzare un oggetto UIColor come attributo su un'entità Core Data, quindi recuperarlo e utilizzarlo nello stesso modo in cui eseguo gli altri attributi su tale entità.Memorizzazione dell'oggetto UIColor nei dati principali
Nella mia ricerca, mentre la letteratura sembra piuttosto scarsa, trovo this post dire che l'attributo deve essere specificato come "trasformabile", e che i dati devono essere convertiti manualmente andando nella utilizzando NSKeyedArchiver
e in uscita utilizzando NSKeyedUnarchiver
.
Ma poi, trovo a more recent post dicendo che tutto ciò che è necessario è salvare UIColor come un attributo trasformabile in CD, generare una sottoclasse di oggetto gestito e usare proprio come altri attributi.
Il Apple docs themselves entra nei dettagli sulla memorizzazione e il recupero di oggetti NSColor
, ma non (che ho trovato) su UIColor
. Tuttavia, sembra che l'archiviazione/l'archiviazione sia gestita automaticamente all'interno del CD. Può essere. Sono stato confuso da questa riga:
Se si utilizza l'editor del modello in Xcode, selezionare Trasformabile nel popup Tipo dell'attributo e digitare il nome nel campo di testo Nome trasformatore valore.
presumo che stanno parlando il nome dell'attributo, ma non sono sicuro, soprattutto dal momento che mette in guardia sui potenziali problemi derivanti dalla specificando il trasformatore in modo esplicito:
Importante: Anche se il trasformatore di default è il trasformatore specificato da NSKeyedUnarchiveFromDataTransformerName, questo trasformatore viene effettivamente utilizzato al contrario. Se specifichi il trasformatore predefinito in modo esplicito, Core Data lo userebbe "nella direzione sbagliata".
Sono arrivato al punto in cui ho un nuovo attributo trasformabile chiamato "color", (non ho chiamato il trasformatore) e hanno generato un nuovo file di sottoclasse contenente la nuova proprietà "color" (id di tipo).
Sono semplicemente perplesso. Qualcuno può darmi qualche consiglio definitivo su come procedere da qui?
Sto usando MagicalRecord per interfacciare con Core Data, se questo è importante.
Grazie mille per l'aiuto!
Grazie, @quellish! Immagino che questa sia un'innovazione relativamente recente, poiché i riferimenti precedenti sembrano indicare misure più rigorose. – rattletrap99
No, ci sono stato per molto, molto tempo. – quellish
Grazie per il vostro aiuto, signore (o signora, a seconda dei casi). Funziona perfettamente! – rattletrap99