第一次发帖,请多多关照。我对编码相当陌生,正在努力了解 SWIFT 及其可选项目。非常感谢专业人士的一些建议!
我正在编写一个简单的应用程序,用户在其中输入文本字段,然后在应用程序中进行一些乘法运算,然后按下按钮“calculateTM”将答案吐出到另一个文本字段中。
我在计算本身时遇到了一些问题,也许是因为我试图在一行上做太多 - 获取文本字段条目,转换为整数,与另一个转换为整数的文本字段条目相乘,基本上是我写的在标题中:
var someVariable: Int = textfield.text.toInt() * textfield2.text.toInt()
问题是,Xcode 希望我强制解包并添加一个 !到两个 toInt() 的结尾。这很好,当然,除非用户没有在框中输入任何内容并按下计算,此时 nil 值会导致程序崩溃,例如:
var someVariable: Int = textfield.text.toInt() x textfield2.text.toInt()
var someVariable2: Int = textfield3.text.toInt() x textfield4.text.toInt()
where the user doesn't enter anything into textfield3 or 4
按照这个简单的算法,代码更新标签(文本字段):
label1.text = String(someVariable)
label2.text = String(someVariable2)
因此,最终转换回字符串也可能会产生一些问题,例如在代码的第一部分中如何处理可选值。
对于冗长的解释深表歉意,我希望我已经足够清楚了,但我想我在代码的第一部分遗漏了一些非常基本的东西。我试过使用可选的 ?还有 nil-coalescing 运算符(在 nil 的情况下设置为 0)但无法使其工作。请帮忙?
非常感谢!
最佳答案
使用 if let
进行可选绑定(bind):
if let var1 = textField.text?.toInt(),
let var2 = textField2.text?.toInt() {
someVariable = var1 * var2 // or directly label1.text = String(var1 * var2)
}
关于ios - SWIFT:var someVariable:int = textfield.text.toInt() x textfield2.text.toInt() 并强制展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31575543/