Tengo algunos problemas iniciales con coredata, pero creo que eso me aclararía mucho si alguien pudiera explicarme algunos casos simples.Cómo almacenar CGRect y otras cosas en los datos centrales
Quiero poner mi modelo en coredata, y en el caso más simple aprovechar la función deshacer/rehacer. La cosa es que todos los ejemplos que veo tienden a almacenar cadenas o enteros. ¿Qué pasa si tengo una clase de la siguiente que quería poner en práctica en los datos básicos (una compuesta por ejemplo):
@interface Badge : NSObject {
NSString *textForBadge;
int badgeValue;
UIColor *color;
CGRect rect;
NSMutableArray *awards; // this would be a list of 'Category' - another custom class
}
Estos son todos hechos en el acto, pero cada uno resaltar una confusión
Tal como lo veo, abriría el modelo .xcdata y agregaría una nueva entidad llamada 'Badge', que sería NSManagedObject
. A continuación, agrego una propiedad para textForBadge
del tipo String
. Hasta aquí todo bien. Hago algo similar para badgeValue, pero luego llego al UIColor
y CGRect
y estoy un poco perplejo, ya que no hay una propiedad para ellos. ¿Se supone que debo crear una entidad para representar cada una (es decir, una entidad Rect
que tiene cuatro propiedades x,y,w,h
) que son ints? A continuación, rellene un CGRect con estas entradas cada vez. Lo mismo ocurre con el UIColor?
Finalmente, llego a mi lista de awards
. Si se trata de una lista de punteros a una serie de objetos que representan un premio, pueden contener una imagen, un color, texto, etc. Supongo que award
volvería a ser una entidad que tengo que diseñar y en lugar de Badge
almacenar una matriz que tendría una relación de 1 a muchos de ella a la clase Award
.
¿Estoy haciendo algo de esto bien o yendo en la dirección opuesta? Todos los ejemplos que veo operan en objetos estándar como String o int, así que quiero asegurarme de tener esto en mente antes de implementar un montón de cosas.
Saludos cordiales,
Bryn
El enlace al que ha hecho referencia aquí está muerto. @AndrewMadsen –