Mam mały problem z zapisaniem koloru w NSUserDefaults. W Objective-C jest łatwe:Jak zapisać kolor w NSUserDefaults w szybkim?
-(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];
}
Powyższy kod działa poprawnie w Objective-C, ale gdy próbuję napisać sam kod swift, otrzymuję błędy w odczytywaniu koloru z NSUserDefaults.
func saveColorForKey (color:NSColor , key:NSString) {
var data:NSData = NSData()
data = NSArchiver.archivedDataWithRootObject(color)
NSUserDefaults.standardUserDefaults().setObject(data, forKey: key)
}
func colorForKey(key:NSString) -> NSColor{
var data: AnyObject? = NSUserDefaults.standardUserDefaults().objectForKey(key)
var color: AnyObject? = NSUnarchiver.unarchiveObjectWithData(data? as NSData)
return color as NSColor
}
Dzięki, i przepraszam za mój angielski!
zaznacz miejsce, jeśli moja odpowiedź jest prawdziwa, aby w przyszłości pomogło to innym. dzięki –