Ho un piccolo problema con il salvataggio di un colore in NSUserDefaults. In Objective-C è facile:Come salvare un colore in NSUserDefaults in swift?
-(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];
}
Il codice di cui sopra funziona bene in Objective-C, ma quando provo a scrivere lo stesso codice a Swift, ricevo errori a leggere colore da 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
}
Grazie e scusa per il mio inglese!
place tick se la mia risposta è vera, in modo che in futuro questo aiuti gli altri. grazie –