Como armazenar o CGRect e outras coisas nos dados principais
Estou tendo alguns problemas iniciais com os coredados, mas acho que isso me esclareceria bastante se alguém pudesse me explicar alguns casos simples.
Quero colocar meu modelo em coredata e, no caso mais simples, tirar proveito de desfazer / refazer. O fato é que todos os exemplos que vejo tendem a armazenar seqüências de caracteres ou números inteiros. E se eu tiver uma classe da seguinte maneira que deseje implementar nos dados principais (um exemplo inventado):
@interface Badge : NSObject {
NSString *textForBadge;
int badgeValue;
UIColor *color;
CGRect rect;
NSMutableArray *awards; // this would be a list of 'Category' - another custom class
}
Todos são feitos no local, mas cada um destaca uma confusão
Na minha opinião, eu abriria o .xcdatamodel e adicionaria um novo Entity chamado 'Badge', que seria umNSManagedObject
. Eu adiciono uma propriedade paratextForBadge
do tipoString
. Por enquanto, tudo bem. Faço algo semelhante para badgeValue, mas depois chego aoUIColor
eCGRect
e estou um pouco perplexo, já que não há uma propriedade para eles. Devo criar uma entidade para representar cada um (ou seja, umRect
entidade que possui quatro propriedadesx,y,w,h
) que são ints? Em seguida, preencha um CGRect com essas entradas cada vez? O mesmo vale para o UIColor?
Finalmente, chego à minha lista deawards
. Se houver uma lista de indicadores para vários objetos que representam um prêmio, eles podem conter uma imagem, cor, texto etc.award
seria novamente uma entidade que eu tenho que projetar e nãoBadge
armazenando uma matriz, eu teria uma relação de 1 para muitos a partir daAward
classe.
Estou acertando isso ou indo na direção oposta? Todos os exemplos que eu vejo funcionam em objetos de baunilha, como String ou int, por isso, quero ter certeza de que tenho isso bem na minha cabeça antes de implementar várias coisas.
Atenciosamente,
Bryn