0

多くのフィールドを含むコア データ エンティティがあります。それらの 1 つには、定義済みの色のリストが含まれている必要があります。後で、これらの色の 1 つ以上に述語を適用できるようにしたいと思います (例: 黒と緑の色を持つオブジェクトを見つける)。私の色のリストは静的です。

エンティティを設計するにはどうすればよいですか? 関係を持つ Color エンティティが必要ですか?

4

1 に答える 1

2

はい、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属性を追加することもできます。さまざまな戦略については、コア データ プログラミング ガイドの「非標準永続属性」で説明されています。

于 2013-04-14T08:57:51.650 に答える