ios - 使用 Userdefaults 检查初始条件失败
问题描述
检查条件并将用户默认值存储到变量中并分配给文本字段。
用户默认值中的初始条件将为空我正在使用警卫检查条件,如果它为空(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 = ""
}
推荐阅读
- c++ - 如何在硬币找零问题中找到硬币的数量
- nativescript - 错误:android.view.InflateException 使用 nativescript 插件反馈
- r - 映射并更改数据框中的列名
- java - 您可以直接从 InputStream 创建 FileWriter 或 BufferedWriter 吗?
- firebase - Firebase Analytics 自定义事件未显示在事件列表中
- php - 在 WordPress 的另一个自定义帖子中复制自定义帖子
- java - 如何向 Firebase 实时数据库中的现有数据添加新属性?
- javascript - 如何从节点模块导入/使用项目的源文件?
- c++ - 在线程之间拆分任务总是值得的吗?
- android - 我们自己制作的应用程序在 android 9 中运行良好,但在 android 6 或更早版本中无法运行