pom*_*nto 3 macos nsuserdefaults nsdata nscolor swift
我已经归档了一个 NSColor 以将它存储在 NSUserDefaults 中:
var data = NSArchiver.archivedDataWithRootObject(NSColor.redColor())
storage.setObject(data, forKey: "color")
storage.synchronize()
Run Code Online (Sandbox Code Playgroud)
但是现在我需要从 NSData 取回颜色,我不知道该怎么做
你只需要使用 if let 来解开你的 NSData 并且你需要一个条件转换如下:
编辑/更新:
Swift 3 或更高版本
// archiving
let color: NSColor = .red
let data = NSKeyedArchiver.archivedData(withRootObject: color)
UserDefaults.standard.set(data, forKey: "color")
Run Code Online (Sandbox Code Playgroud)
// unarchiving
if let loadedData = UserDefaults.standard.data(forKey: "color"),
let loadedColor = NSKeyedUnarchiver.unarchiveObject(with: loadedData) as? NSColor {
// you can access loadedColor here
print(loadedColor) // "sRGB IEC61966-2.1 colorspace 1 0 0 1\n"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
881 次 |
| 最近记录: |