Ios 使用Userdefaults检查初始条件失败

Ios 使用Userdefaults检查初始条件失败,ios,swift,nsuserdefaults,optional,Ios,Swift,Nsuserdefaults,Optional,检查条件并将用户默认值存储到变量中,并分配给textfield 用户默认值中的初始条件将为空我正在使用guard检查条件,如果其为空(nil),则将成本值分配给“”空字符串,否则将从用户默认值中分配其从给定defaultskey.cost存储的值 class FirstViewControll : ViewController var costValue: String? override func viewWillAppear(_ animated: Bool) {

检查条件并将用户默认值存储到变量中,并分配给textfield

用户默认值中的初始条件将为空我正在使用guard检查条件,如果其为空(nil),则将成本值分配给“”空字符串,否则将从用户默认值中分配其从给定defaultskey.cost存储的值

class  FirstViewControll : ViewController
var costValue: String?

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

       costValue! = userDefault.value(forKey: defaultsKeys.cost) as! String
            guard costValue != nil else {
                self.textField?.text = ""
                return
            }
           self.textField?.text = costValue!

}
应用程序因可选值展开失败而崩溃 致命错误:在展开可选值时意外发现nil


我假设编写了一个有效的条件代码

您需要检查UserDefaults中是否有值

if let value = userDefault.value(forKey: defaultsKeys.cost) as? String {
   // there is a value 
   costValue = value
} else {
   self.textField?.text = ""
}

我移除了防护装置,但条件不存在??”“很好

self.textField?.text = userDefault.string(forKey: defaultsKeys.cost) ?? ""
不知道这是不是好办法

costValue=userDefault.value(forKey:defaultsKeys.cost)作为?绳子。只要更换这一行工作完美!需要知道在将“!”替换为“?”后,字符串接受选项。