多くのフィールドを含むコア データ エンティティがあります。それらの 1 つには、定義済みの色のリストが含まれている必要があります。後で、これらの色の 1 つ以上に述語を適用できるようにしたいと思います (例: 黒と緑の色を持つオブジェクトを見つける)。私の色のリストは静的です。
エンティティを設計するにはどうすればよいですか? 関係を持つ Color エンティティが必要ですか?
多くのフィールドを含むコア データ エンティティがあります。それらの 1 つには、定義済みの色のリストが含まれている必要があります。後で、これらの色の 1 つ以上に述語を適用できるようにしたいと思います (例: 黒と緑の色を持つオブジェクトを見つける)。私の色のリストは静的です。
エンティティを設計するにはどうすればよいですか? 関係を持つ Color エンティティが必要ですか?
はい、Colorcolors
エンティティと、EntityからColorへの対多関係を作成することをお勧めします。
事前定義された色の静的リストの場合、永続ストアの作成時に色エンティティを作成できます。または、アプリケーションの起動時にカラー エンティティを「検索または作成」することもできます。
Colorエンティティに属性がある場合、色name
を持つオブジェクトを見つけることができます
[NSPredicate predicateWithFormat:@"ANY colors.name = %@", @"red"];
2 つの色を確認するには、次のいずれかを使用できます。
[NSPredicate predicateWithFormat:@"(ANY colors.name = %@) AND (ANY colors.name = %@)", @"black", @"green"];
または(これが正しいことを願っています:-):
NSArray *colorNames = @[@"black", @"green"];
[NSPredicate predicateWithFormat:@"SUBQUERY(colors, $c, $c.name IN %@).@count >= 2", colorNames];
(必要に応じて) ColorエントリにUIColor color
属性を追加することもできます。さまざまな戦略については、コア データ プログラミング ガイドの「非標準永続属性」で説明されています。