Swift - 添加在两个文本字段中捕获的值

Swift - adding values captured in two textfields

我似乎对一个非常简单的场景有疑问。

我正在尝试添加两个文本字段(称为 T1 和 T2)捕获的值,并在按下标签 (Label1) 上的按钮 (GoButton) 时显示它们的总数。

我试过用多种方式来表达语法,但还是不行。我觉得我在网上找到的一些语法对我不起作用。我在 Yosemite.

上使用 Xcode 6.3

截图:

我的 Xcode 接受 swift 语法时是否有可能遗漏了什么?请帮忙。

T1.text.toInt() 是可选整数。所以你必须先打开它。所以使用 Label1.text = "\(T1.text.toInt()! + T2.text.toInt()!)"

祝你好运

那是因为 toInt() returns 是一个可选值。您可以将 String 转换为 NSString 并提取整数值而不返回可选值。

Label1.text = ((T1.text! as NSString).integerValue + (T2.text! as NSString).integerValue + (T3.text! as NSString).integerValue + (T4.text! as NSString).integerValue).description 

但丁- 值仍有可能为零。您正确地 !'ed 了 TextFields,因此它们会自动展开,但 Int 转换也是可选的(Int 仍然认为它可能会得到 nil 值)。

Label1.text = "\(T1.text.toInt()! + T2.text.toInt()!)"

有用的提示 - 如果您将代码粘贴到此处(而不是屏幕截图),人们可以更轻松地将您的代码复制并粘贴到他们的 IDE 中并进行测试。

对于这里比我聪明的人(每个人),我很好奇为什么 Xcode 不抱怨单个 Int 转换:

Label1.text = "\(T1.text.toInt())"  // no complaint from the compiler

Label1.text = "\(T1.text.toInt()! + T2.text.toInt()!)" //T1.text.toInt()

is an optional so you should use ! mark otherwise it will return nil value