我试图了解 Core Data 是如何工作的。为此,我尝试使用以下属性实现一个名为“Color”的简单实体:
- value -> 一个 NSColor 来处理颜色本身,绑定到一个 NSColorWell
- red -> 一个浮点值,用于处理颜色的红色分量,绑定到 NSSlider
- 绿色 -> 与红色相同,但用于绿色组件,绑定到 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 是如何工作的。