gpt4 book ai didi

swift - 从 UserDefaults 保存/获取 UIColor

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:35 25 4
gpt4 key购买 nike

我需要一些帮助来从 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 最近被弃用了,所以我不知道如何从中获取数据。

有什么建议吗?谢谢!

最佳答案

在您的代码中,只需替换 2 行,即

替换

color = NSKeyedUnarchiver.unarchiveObject(with: colorData) 作为? UIColor

颜色 = 尝试! NSKeyedUnarchiver.unarchivedObject(ofClass: UIColor.self, from: colorData)

////在这里你可以使用try?代替try!并将其包装在if-let语句中。您的选择。

替换

colorData = NSKeyedArchiver.archivedData(withRootObject: color) as NSData?

colorData = 试试? NSKeyedArchiver.archivedData(withRootObject: color, requiringSecureCoding: true)

此外,在 var colorData: NSData? 中使用 Data 而不是 NSData ,即

var colorData: Data?

关于swift - 从 UserDefaults 保存/获取 UIColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52999953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com