Tôi gặp vấn đề với lưu màu trong NSUserDefaults. Trong mục tiêu-c rất dễ dàng:Làm thế nào để lưu một màu trong NSUserDefaults nhanh chóng?
-(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];
}
Mã trên hoạt động tốt trong mục tiêu-c, nhưng khi tôi cố gắng viết mã nhanh, tôi nhận được lỗi đọc màu từ 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
}
Cảm ơn và xin lỗi vì tiếng anh của tôi!
nơi đánh dấu nếu câu trả lời của tôi là đúng để trong tương lai điều này sẽ giúp người khác. cảm ơn –