使用Userdefaults进行的初始条件检查失败

时间:2019-07-24 10:21:14

标签: ios swift nsuserdefaults optional

检查条件并将用户默认值保存到变量中并分配给文本字段。

用户默认状态下的初始条件将为空我正在使用警惕检查条件,如果其条件为空(零)将成本值分配给“”空字符串则从用户默认值中分配值,该值存储在给定的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

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

2 个答案:

答案 0 :(得分:4)

您需要检查UserDefaults中是否有一个值。

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

答案 1 :(得分:0)

我删除了条件不存在的警卫队? “”效果很好!

self.textField?.text = userDefault.string(forKey: defaultsKeys.cost) ?? ""

不知道这是不是一种好方法!