gpt4 book ai didi

ios - SWIFT:var someVariable:int = textfield.text.toInt() x textfield2.text.toInt() 并强制展开

转载 作者:搜寻专家 更新时间:2023-10-31 23:02:46 28 4
gpt4 key购买 nike

第一次发帖,请多多关照。我对编码相当陌生,正在努力了解 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com