0

我有一个处理很多默认值的类,这是我初始化默认值的方式:

+ (void) initialize
{
    NSUserDefaults* defaults=[NSUserDefaults standardUserDefaults];
    NSData* colorData= [NSKeyedArchiver archivedDataWithRootObject: [NSColor orangeColor]];
    NSDictionary* def= @{ @"colorKey" : colorData, ... };
    [defaults registerDefaults: def];
}

然后我提供了一种读取默认颜色的方法和一种设置它的方法:

- (NSColor*) color
{
    NSUserDefaults* defaults=[NSUserDefaults standardUserDefaults];
    NSData* colorData= [defaults objectForKey: colorKey];
    return [NSKeyedUnarchiver unarchiveObjectWithData: colorData];
}

- (void) setColor: (NSColor*) color
{
    NSUserDefaults* defaults=[NSUserDefaults standardUserDefaults];
    NSData* colorData= [NSKeyedArchiver archivedDataWithRootObject: color];
    [defaults setObject:colorData forKey: colorKey];
}

但是如果在 color: 方法中打印颜色,有时它属于 NSColorWell 类,它会在应用程序内部造成麻烦。

4

1 回答 1

0

NSColorWellNSControl根据https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSColorWell_Class/Reference/Reference.html,所以看起来你错误地setColor:NSColorWell实例而不是调用NSColor.

于 2012-12-19T17:53:13.127 回答