2010-07-28 10 views
11

Ho difficoltà a capire come i dati di base funzionino concettualmente e in termini di codice.Per iniziare con Core Data

Ho capito che c'è un coordinatore e un contesto. Ho anche capito che c'è la gestione dello stato. Come lavorano insieme?

Non capisco come posso memorizzare, ad esempio, un'immagine e alcune stringhe come un oggetto.

Diciamo che voglio recuperare l'immagine e le stringhe più tardi. Cosa faccio?

Dove posso salvare il mio stato? Come?

Che aspetto ha il mio codice? Gradirei davvero un campione di codice spoglio qui, perché sono davvero confuso.

risposta

25

Questi sono alcuni tra i migliori tutorial che ho trovato:

Per quanto riguarda i vostri quesstions:

Capisco che ci sia un coordinatore e un contesto. Ho anche capito che c'è la gestione dello stato . Come funzionano insieme ?

Il coordinatore di archivio permanente è ciò che gestisce il luogo in cui i dati vengono effettivamente memorizzati, che sia un DB SQLlite o un file XML o altro. Il coordinatore è l'astrazione quindi non devi preoccuparti di quale tipo di memoria si trovi nel back-end.

Il contesto oggetto gestito è il modo in cui si interagisce con il coordinatore del negozio permanente. Pensalo come il tuo blocco per i graffi. È possibile creare e modificare oggetti gestiti dal contesto oggetto gestito.

Non capisco come posso memorizzare, ad esempio, un'immagine e alcune stringhe come un oggetto. Diciamo che voglio recuperare l'immagine e le stringhe più tardi. Cosa faccio?

Se si esaminano alcune delle esercitazioni precedenti, si vedrà come estrarre gli oggetti dal contesto dell'oggetto gestito. Un NSString sarebbe semplicemente essere memorizzato come un attributo di stringa su un oggetto gestito, in questo modo:

[managedObject setValue:@"TestString" forKey:@"SomeStringProperty"]; 

Io non sono molto sicuro di immagini come non ho mai memorizzato un'immagine in Core Data prima.So che tutto ciò che può essere serializzato può essere memorizzato come attributo trasformabile. Here's a post about storing UIImages in Core Data

Dove posso salvare il mio stato? Come?

È sufficiente chiamare il metodo "salva" nel contesto dell'oggetto gestito. In questo modo:

[context save:&error] 
+2

È possibile memorizzare oggetti NSData in Core Data, quindi per salvare un'immagine, a farla di dati (probabilmente utilizzando UIImagePNGRepresentation()) e memorizzare quello. Per recuperare l'immagine, ottenere l'oggetto NSData da Core Data e quindi utilizzare il metodo + imageWithData di UIImage per ottenere un UIImage. –

+0

Ah ... Ray Wenderlich - Ha un buon sito. – Moshe

+0

Il secondo tutorial collegato è tornato con una richiesta errata di Errore 400 al momento della stesura di questo commento. – BinaryMisfit