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
我似乎对一个非常简单的场景有疑问。
我正在尝试添加两个文本字段(称为 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