Swift为.toInt提供Optional(3)而不是3
尝试从字段中提取数字并继续获取可选(数字)而不是数字
@IBOutlet weak var years: UITextField! @IBAction func calculateYear(sender: AnyObject) { var a = years.text.toInt() println(a) }
如果3在该字段中获得Optional(3)
如果我使用years.text
我得到正确的输出,但它是一个字符串,我可以使用它。
使用Xcode 6.1
发生这种情况是因为toInt()
方法返回一个可选项,以解释当字符串无法转换为整数时的情况。
把它放在一个可选的绑定中:
if let a = a { println(a) }
toInt()
返回一个可选项,因为对整数的对话可能会失败。 考虑用户输入数字以外的其他内容的情况。 当用户输入“Blah”时,你期望toInt()
返回什么?
您需要有条件地打开可选项
if let a = years.text.toInt() { println(a) }
我还发现通过改变一个强制解包! 工作也很好。 感谢所有试图帮助的人。