Ios Swift给出可选(3)而不是.toInt的3

Ios Swift给出可选(3)而不是.toInt的3,ios,swift,xcode6,Ios,Swift,Xcode6,试图从字段中提取一个数字,并继续获取可选(数字)而不是该数字 @IBOutlet weak var years: UITextField! @IBAction func calculateYear(sender: AnyObject) { var a = years.text.toInt() println(a) } 如果3在字段中,则获取可选(3) 如果我使用years.text,我会得到正确的输出,但它是一个字符串,我无法使用它 使用Xcode 6.1时会发生这种情况,

试图从字段中提取一个数字,并继续获取可选(数字)而不是该数字

@IBOutlet weak var years: UITextField!

@IBAction func calculateYear(sender: AnyObject) {

    var a = years.text.toInt()
    println(a)
}
如果3在字段中,则获取
可选(3)

如果我使用
years.text,我会得到正确的输出,但它是一个字符串,我无法使用它


使用Xcode 6.1时会发生这种情况,因为
toInt()
方法返回一个可选值,以说明字符串不能转换为整数的情况

只需将其放入可选绑定中:

if let a = a {
    println(a)
}
toInt()
返回一个可选值,因为与整数的对话可能会失败。考虑用户输入数字以外的东西的情况。当用户输入“Blah”时,您希望
toInt()
返回什么

您需要有条件地展开可选文件

if let a = years.text.toInt() {
    println(a)
}

我还发现通过将a更改为a来强制展开!工作也很顺利。感谢所有试图帮忙的人

你有什么惊讶?查看标题:
function()->Int?
它是可选的。问题是什么?这会让用户很容易崩溃你的应用程序。该字段和kaboom中的任何非整数文本项。