0
我有一个包含许多字段的核心数据实体。其中一个应该包含预定义颜色的列表。稍后,我希望能够对这些颜色中的一个或多个应用谓词(比如:查找具有黑色和绿色的对象)。我的颜色列表将是静态的。设置了核心数据实体
我该如何设计我的实体?我应该有一个与关系的颜色实体吗?
我有一个包含许多字段的核心数据实体。其中一个应该包含预定义颜色的列表。稍后,我希望能够对这些颜色中的一个或多个应用谓词(比如:查找具有黑色和绿色的对象)。我的颜色列表将是静态的。设置了核心数据实体
我该如何设计我的实体?我应该有一个与关系的颜色实体吗?
是的,我会建议建立一个颜色实体和一对多的关系colors
从实体到颜色。
如果它是预定义颜色的静态列表,则可以在创建持久性存储库时创建 颜色实体。或者,您可以在应用程序启动时“查找或创建”颜色实体。
如果颜色实体具有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
属性添加到颜色条目,各种 策略在核心数据编程指南中的“Non-standard Persistent Attributes”中描述。
感谢您的咨询! – Pierre