"可选类型'字符串?'的值未解开包装;你的意思是用'!'还是'?'?



我学习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"
    }
}  

文本标签的text属性是可选的,您必须在使用它之前展开它。

var enteredAge = Int(age.text!)

更好:

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"
}

我试过了。但它还是说了同样的事情。我现在已经设法把它修好了。我所做的只是改变模拟器显示的设备。如果我把它修好了,那只是侥幸而已。也许是因为我正在制作iOS应用,而iPad需要不同的语法。

感谢您的回复!了解做某事的不同方法也是很有用的。

相关内容

最新更新