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

questionAnswers(4)

yourAnswerToTheQuestion