Ho alcuni problemi iniziali con i coredati, ma ritengo che chiarirebbe le cose per me se qualcuno potesse spiegarmi alcuni casi semplici.Come archiviare CGRect e altre cose nei dati di base
Desidero inserire il mio modello in coredata e, in un caso molto semplice, sfruttare l'annullamento/ripristino. Il fatto è che tutti gli esempi che vedo tendono a memorizzare stringhe o interi. E se ho una classe come segue che ho voluto realizzare nei dati di base (un composto esempio):
@interface Badge : NSObject {
NSString *textForBadge;
int badgeValue;
UIColor *color;
CGRect rect;
NSMutableArray *awards; // this would be a list of 'Category' - another custom class
}
Questi sono tutti costituiti sul posto, ma ogni evidenziare una confusione
A mio avviso, aprirò il .xcdatamodel e aggiungerò un nuovo "Badge" di entità, che sarebbe un NSManagedObject
. Quindi aggiungo una proprietà per textForBadge
di tipo String
. Fin qui tutto bene. Faccio qualcosa di simile per badgeValue, ma poi arrivo allo UIColor
e allo CGRect
e sono un po 'perplesso, poiché non c'è una proprietà per quelli. Dovrei creare un'entità per rappresentare ciascuna (cioè un'entità Rect
con quattro proprietà x,y,w,h
) che sono ints? Quindi popola un CGRect con questi inte ogni volta? Idem per l'UIColor?
Infine, vengo alla mia lista di awards
. Se questi sono un elenco di puntatori a un numero di oggetti che rappresentano un premio potrebbero contenere un'immagine, un colore, un testo ecc. Suppongo che award
sia di nuovo un'entità che devo progettare e piuttosto che Badge
che memorizza un array che avrei una relazione da 1 a molti da essa alla classe Award
.
Sto ottenendo qualcosa di giusto, o andando nella direzione opposta? Tutti gli esempi che vedo operano su oggetti vanilla come String o int, quindi voglio assicurarmi di averlo in mente prima di implementare un sacco di cose.
Cordiali saluti,
Bryn
Il link che hai indicato qui è morto. @AndrewMadsen –