"可选类型'String的值?' 没打开;你的意思是用'!' 要么 '?' ?"

Hee*_*aha 10 compiler-errors swift unwrap

我已经很久没学过iOS或Swift了.使用最新的Xcode更新之一,我在计算机上制作的许多应用程序现在似乎都使用了过时的语法.

Xcode通过将它转换为新语法来谈论我们,但通常没有解决任何问题,我有一个新问题.这是我转换语法后第一个应用程序之一的代码.我收到一个错误说:

可选类型'String?'的值 没有打开; 你的意思是用'!' 要么 '?' ?

我知道这一定很简单,但我不知道如何解决它.这是我的代码:

@IBAction func findAge(sender: AnyObject) {
    var enteredAge = Int(age.text)
    if enteredAge != nil {
        var catYears = enteredAge! * 7
        resultLabel.text = "Your cat is \(catYears) in cat years"
    } else {
        resultLabel.text = "Please enter a whole number"
    }
}  
Run Code Online (Sandbox Code Playgroud)

aya*_*aio 18

text文本标签的属性是可选的,您必须在使用它之前将其解包.

var enteredAge = Int(age.text!)
Run Code Online (Sandbox Code Playgroud)

更好的是:

if let text = age.text, let enteredAge = Int(text) {
    let catYears = enteredAge * 7
    resultLabel.text = "Your cat is \(catYears) in cat years"
} else {
    resultLabel.text = "Please enter a whole number"
}
Run Code Online (Sandbox Code Playgroud)