当我将 UITextField 的输入带入变量或 UserDefault 时,variable/UserDefault 最终为 nil
When I bring a UITextField's input to a variable or UserDefault, the variable/UserDefault ends up as nil
当我打印 .text 属性 print(inputField.text!)
时,它会打印 0.0925
,这是我输入的内容。但是,当我将其带入 UserDefault 或变量
defaults.set(Int(inputField.text!), forKey: "taxRate")
print(defaults.value(forKey: "taxRate"))
时,它会打印 nil
。无论如何我可以解决这个问题以便 UserDefault 打印正确的值吗?
我是个大白痴,没想到输入的数字不应该是整数,应该是float/double。感谢马特让我意识到这一点。我所要做的就是将 defaults.set(Int(inputField.text!), forKey: "taxRate")
更改为 defaults.set(Double(inputField.text!), forKey: "taxRate")
.
问题是表达式
Int(inputField.text!)
Text 不是 Int。某些文本可能代表 Int,但您的文本“0.0925”不是。所以 nil
是正确答案,很难看出您还期望什么。
我是个大白痴,我没有意识到输入的数字不应该是整数,应该是 float/double。感谢马特让我意识到这一点。我所要做的就是改变
defaults.set(Int(inputField.text!), forKey: "taxRate")
至
defaults.set(Double(inputField.text!), forKey: "taxRate")
当我打印 .text 属性 print(inputField.text!)
时,它会打印 0.0925
,这是我输入的内容。但是,当我将其带入 UserDefault 或变量 defaults.set(Int(inputField.text!), forKey: "taxRate")
print(defaults.value(forKey: "taxRate"))
时,它会打印 nil
。无论如何我可以解决这个问题以便 UserDefault 打印正确的值吗?
我是个大白痴,没想到输入的数字不应该是整数,应该是float/double。感谢马特让我意识到这一点。我所要做的就是将 defaults.set(Int(inputField.text!), forKey: "taxRate")
更改为 defaults.set(Double(inputField.text!), forKey: "taxRate")
.
问题是表达式
Int(inputField.text!)
Text 不是 Int。某些文本可能代表 Int,但您的文本“0.0925”不是。所以 nil
是正确答案,很难看出您还期望什么。
我是个大白痴,我没有意识到输入的数字不应该是整数,应该是 float/double。感谢马特让我意识到这一点。我所要做的就是改变
defaults.set(Int(inputField.text!), forKey: "taxRate")
至
defaults.set(Double(inputField.text!), forKey: "taxRate")