对 Swift 来说非常新,所以这里是一个非常简单的问题,但我正在努力从UserDefaults
存储值中解开一个可选项。UID 的值为“dan”。这是代码:
override func viewDidLoad() {
super.viewDidLoad()
let uidObject1 = UserDefaults.standard.object(forKey: "UID")
if let uid = uidObject1 {
updateUsername.setTitle("\(uid)", for: UIControlState.normal)
print("on load \(uid)")
}
}
这会更改按钮 updateUsername 标签,并且还会在控制台打印以下内容...
加载时可选(“丹”)
我无法摆脱 Optional()。我试图解开uid。
print("加载时 (uid!)")
正如 Xcode 告诉我的那样,我不能强制解开非可选类型“Any”的值。
通过四处搜索,我了解到检查 -if let uid = uidObject1
删除了 Optional() 因为它仅在uidObject1
存在时运行。有人可以指出我正确的方向吗?
编辑:这是我的设置代码;
@IBAction func updateUsername(_ sender: AnyObject) {
if let uid = userName.text {
UserDefaults.standard.set("\(userName.text)", forKey: "UID")
updateUsername.setTitle("\(uid)", for: UIControlState.normal)
}
}
回答 - 需要像这样解开集合 (userName.text) > (userName.text!) 已解决。谢谢奥利弗。