Objective-C在NSUserDefaults中保存NSColor

Sam*_*ami 1 objective-c save nsuserdefaults nscolor

如何保存点的颜色,以便在打开和关闭应用程序时,点是用户最后设置的颜色?

有人可以向我解释如何使用NSUserDefaults以及在哪种方法中声明NSUserDefaults.

到目前为止我有这个:

NSData *data = [NSArchiver archivedDataWithRootObject:color];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"MyColor"];

NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"MyColor"];
NSColor *color = [NSUnarchiver unarchiveObjectWithData:data];
Run Code Online (Sandbox Code Playgroud)

我遵循的教程链接:http: //www.mactech.com/articles/mactech/Vol.25/25.04/2504RoadtoCode/index.html

Ant*_*udt 5

这是我使用的:

- (NSColor *)colorForKey:(NSString *)key
{
    NSData  *data;
    NSColor *color;

    data = [[NSUserDefaults standardUserDefaults] objectForKey:key];
    color= [NSUnarchiver unarchiveObjectWithData:data];
    if( ! [color isKindOfClass:[NSColor class]] )
    {
        color = nil;
    }

    return color;
    }

- (void)setColor:(NSColor *)color forKey:(NSString *)key
{
    NSData *data = [NSArchiver archivedDataWithRootObject:color];
    [[NSUserDefaults standardUserDefaults] setObject:data forKey:key];

    [BFChatWindow refresh];
}
Run Code Online (Sandbox Code Playgroud)