2013-01-10 13 views
10

Recentemente ho iniziato a lavorare sui dati principali, per favore qualcuno può dirmi qual è la differenza tra dati trasformabili e binari. Ho bisogno di memorizzare myClassObject nei dati di base. Ho creato l'attributo e definito il suo tipo come dati binari, ma al momento dell'archiviazione ricevo un errore.Qual è la differenza tra dati trasformabili e binari

+1

Quale errore si ottiene? Che tipo di dati hai intenzione di memorizzare all'interno di quell'attributo? (Intendo la visione aziendale dei dati, non il tipo di dati formale). –

+1

Questo aiuto? http://stackoverflow.com/questions/3014498/what-can-i-do-with-an-transformable-attribute-type-in-core-data-on-the-iphone – trojanfoe

risposta

20

Con un attributo binario, di leggere e scrivere i casi di NSData direttamente.

con un attributo trasformabile, di leggere e scrivere le istanze di qualsiasi classe che può essere convertito da e per NSData. La memorizzazione dei dati attuale è la stessa con un attributo binario, ma Core Data utilizza un NSValueTransformer per convertire da/NSData quando necessario.

Per esempio, dire la vostra oggetto gestito ha un attributo un'immagine in cui sarebbe conveniente per leggere e scrivere UIImage direttamente. Tranne, UIImage non può essere salvato nei dati principali. Ma UIImage può essere convertito in e da NSData. Quindi, se si è utilizzato un attributo trasformabile si poteva leggere e scrivere UIImage pur mantenendo NSData nell'archivio dati.

+0

Tom, i dati trasformabili mantengono il lo stesso comportamento NSData riguardante l'archiviazione esterna? (anche se lo spazio di archiviazione esterno consentito non è esplicitamente nell'interfaccia utente o i blob inizieranno a comparire nell'archivio dati principale)? La documentazione non indica precisamente che l'attributo trasformabile verrà salvato in un record esterno o le regole che verranno applicate. Puoi condividere la tua esperienza? –

+0

Esattamente ho la stessa domanda. Non esiste tale opzione nel tipo di attributo trasformabile da memorizzare in "Memoria esterna". È attivato per impostazione predefinita o cosa? –

Problemi correlati