Core Data の仕組みを理解しようとしています。このために、これらの属性を持つ「Color」という名前の単純なエンティティを実装しようとしました:
- 値 -> NSColorWell にバインドされた色自体を処理する NSColor
- red -> NSSlider にバインドされた、色の赤のコンポーネントを処理する float 値
- green -> red と同じですが、緑のコンポーネント用で、NSSlider にバインドされています
- blue -> blue コンポーネント、NSSlider にバインド
このために、私は Color という名前のクラスを使用しており、コンポーネントに応じて色を取得するために - (id)value を上書きしました:
@implementation Color
@dynamic blue;
@dynamic green;
@dynamic name;
@dynamic red;
@dynamic value;
- (id)value
{
return [NSColor colorWithCalibratedRed:self.red.floatValue green:self.green.floatValue blue:self.blue.floatValue alpha:1.0];
}
+ (NSSet *)keyPathsForValuesAffectingValue
{
return [NSSet setWithArray:@[@"red", @"green", @"blue"]];
}
スライダーの値を変更するたびに、色がコンポーネントに適応します。
私がやりたいのは逆の操作です。色を設定すると (ドラッグ アンド ドロップまたは NSColorWell のカラー ピッカー)、コンポーネントが自動的に適応します。これを実装しようとしましたが、うまくいきません。ここに貼り付けるにはあまりにも多くのことを試みました(うまくいかなかったので関係ありません)。これどうやってするの ?これを理解すると、Core Data がどのように機能するかを理解するのに大いに役立ちます。