Как хранить CGRect и другие вещи в основных данных

У меня возникли некоторые проблемы с базовыми данными, но я чувствую, что это сильно прояснит мне ситуацию, если кто-то сможет объяснить мне некоторые простые случаи.

Я хочу поместить свою модель в общие данные и в простейшем случае воспользоваться отменой / повтором. Дело в том, все примеры, которые я вижу, как правило, хранят либо строки, либо целые числа. Что, если у меня есть следующий класс, который я хотел бы реализовать в основных данных (выдуманный пример):

@interface Badge : NSObject {

NSString *textForBadge;
int      badgeValue;
UIColor  *color;
CGRect    rect;
NSMutableArray *awards; // this would be a list of 'Category' - another custom class
}

Все они созданы на месте, но каждый подчеркивает путаницу

Насколько я понимаю, я бы откройте .xcdatamodel и добавьте новую сущность с именем «Badge», которая будет NSManagedObject . Затем я добавляю свойство для textForBadge типа String . Все идет нормально. Я делаю нечто подобное для badgeValue, но потом перехожу к UIColor и CGRect , и я немного озадачен, поскольку для них нет свойства. Должен ли я создать объект для представления каждого (т.е. объект Rect , который имеет четыре свойства x, y, w, h ) что такое int? Затем каждый раз заполнять CGRect этими целыми числами? То же самое для UIColor?

Наконец, я подхожу к своему списку наград . Если это список указателей на ряд объектов, представляющих награду, они могут содержать изображение, цвет, текст и т. Д. Я предполагаю, что награда снова будет сущностью, которую я должен разработать, а не Значок , хранящий массив, у меня будет отношение 1 ко многим от него к классу Award .

Правильно ли я понимаю это или иду в противоположном направлении? Все примеры, которые я вижу, работают с ванильными объектами, такими как String или int, поэтому я хочу убедиться, что это правильно в моей голове, прежде чем реализовывать кучу вещей.

С уважением,

Брин

12
задан davbryn 11 October 2010 в 17:49
поделиться