【发布时间】:2015-04-14 01:52:43
【问题描述】:
我似乎对一个非常简单的场景有疑问。
我正在尝试添加由两个文本字段(称为 T1 和 T2)捕获的值,并在按下标签 (Label1) 上的按钮 (GoButton) 时显示它们的总数。
我尝试了多种方式的语法措辞,但仍然不起作用。我觉得我在网上找到的一些语法对我不起作用。我在 Yosemite 上使用 Xcode 6.3。
截图:
我的 Xcode 是否有可能缺少一些东西来接受 swift 语法?请帮忙。
【问题讨论】:
我似乎对一个非常简单的场景有疑问。
我正在尝试添加由两个文本字段(称为 T1 和 T2)捕获的值,并在按下标签 (Label1) 上的按钮 (GoButton) 时显示它们的总数。
我尝试了多种方式的语法措辞,但仍然不起作用。我觉得我在网上找到的一些语法对我不起作用。我在 Yosemite 上使用 Xcode 6.3。
截图:
我的 Xcode 是否有可能缺少一些东西来接受 swift 语法?请帮忙。
【问题讨论】:
但丁- 这些值仍有可能为零。您已正确 !ed 文本字段,因此它们会自动展开,但 Int 转换也是可选的(Int 仍然认为它可能会得到一个 nil 值)。
Label1.text = "\(T1.text.toInt()! + T2.text.toInt()!)"
有用的提示 - 如果您将代码粘贴到此处(而不是屏幕截图),人们可以更轻松地将代码复制并粘贴到他们的 IDE 中并进行测试。
对于那些比我聪明的人(每个人)我很好奇为什么 Xcode 不抱怨单个 Int 转换:
Label1.text = "\(T1.text.toInt())" // no complaint from the compiler
【讨论】:
值T1.text.toInt() 是一个可选整数。所以你必须先打开它。所以使用Label1.text = "\(T1.text.toInt()! + T2.text.toInt()!)"
祝你好运
【讨论】:
那是因为 toInt() 返回一个可选值。您可以将 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
【讨论】:
Label1.text = "\(T1.text.toInt()! + T2.text.toInt()!)" //T1.text.toInt()
是可选的,因此您应该使用 !标记否则它将返回 nil 价值
【讨论】: