2013-04-14 5 views
0

У меня есть основной объект данных, который содержит много полей. Один из них должен содержать список предопределенных цветов. Позже я хотел бы иметь возможность применять предикат на одном или нескольких из этих цветов (например: найти объект с черным и зеленым цветом). Мой список цветов будет статичным.Объект данных ядра с набором

Как я могу создать свою сущность? Должен ли я иметь объект «Цвет» с отношениями?

ответ

2

Да, я бы рекомендовал создать Color сущность и ко-многим colors от вашего Entity к Цвет.

Если это статический список предварительно определенных цветов, вы можете создать объекты цвета , когда создается постоянное хранилище. Кроме того, вы можете «найти или создать» объекты цвета при запуске приложения.

Если Color объект имеет атрибут name, вы можете найти объекты, имеющие цвет с

[NSPredicate predicateWithFormat:@"ANY colors.name = %@", @"red"]; 

Для проверки двух цветов, вы можете использовать либо

[NSPredicate predicateWithFormat:@"(ANY colors.name = %@) AND (ANY colors.name = %@)", @"black", @"green"]; 

или (I надеемся, что это правильно :-):

NSArray *colorNames = @[@"black", @"green"]; 
[NSPredicate predicateWithFormat:@"SUBQUERY(colors, $c, $c.name IN %@)[email protected] >= 2", colorNames]; 

Вы также можете (при необходимости) добавить атрибут UIColor color в запись Color, различные стратегии описаны в «Non-standard Persistent Attributes» в Руководстве по программированию основных данных.

+0

Спасибо за ваш совет! – Pierre

Смежные вопросы