【发布时间】:2018-03-21 21:20:18
【问题描述】:
我试图让我的应用程序在设置中保存 UIColors,当我尝试保存背景颜色的设置时,它起作用了。但是,当我添加应该允许我保存第二个 UIColor 的第二个代码块时,它给了我错误 - 致命错误:在展开可选值时意外发现 nil。谁能告诉我如何保存第二个 UIColor 而不会出错?
// First UIColor save - Works
var dd = UIColor(hex: UserDefaults.standard.value(forKey: "TheMainUIColour") as! String )
UserDefaults.standard.set(dd.toHexString, forKey: "TheMainUIColour")
let mainBackgroundColour = UserDefaults.standard.value(forKey: "TheMainUIColour") as! String
let color = UIColor(hex: mainBackgroundColour)
self.view.backgroundColor = dd
// Second UIColor Save - Doesnt Work
let dd2: UIColor = UIColor(hex: UserDefaults.standard.value(forKey: "TheMainUIColour2") as! String )
UserDefaults.standard.set(dd2, forKey: "TheMainUIColour2")
let mainBackgroundColour2 = UserDefaults.standard.value(forKey: "TheMainUIColour2") as! String
let color2 = UIColor(hex: mainBackgroundColour2)
【问题讨论】:
-
不要使用
value(forKey:)。使用string(forKey:)或object(forKey:)或UserDefaults中记录的任何其他方法。但不要使用value(forKey:)或setValue(_:forKey:)。 -
把
UserDefaults.standard.set(dd2, forKey: "TheMainUIColour2")改成UserDefaults.standard.set(dd2. toHexString, forKey: "TheMainUIColour2")
标签: ios swift debugging colors userdefaults