我需要帮助从UserDefaults中加载和读取UIColor。我找到了一个不错的扩展来完成这个任务:
extension UserDefaults {
func colorForKey(key: String) -> UIColor? {
var color: UIColor?
if let colorData = data(forKey: key) {
color = NSKeyedUnarchiver.unarchiveObject(with: colorData) as? UIColor
}
return color
}
func setColor(color: UIColor?, forKey key: String) {
var colorData: NSData?
if let color = color {
colorData = NSKeyedArchiver.archivedData(withRootObject: color) as NSData?
}
set(colorData, forKey: key)
}
}
但是NSKeyedUnarchiver.unarchiveObject最近已经被弃用,所以我不知道如何从中获取数据。
有什么建议吗? 谢谢!
setColor(color:forKey)
对于Color
参数采用了一个Optional
类型的参数? - Duncan C