我没有长时间研究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"
}
}
答案 0 :(得分:17)
文本标签的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"
}
答案 1 :(得分:1)
我试过了。但它仍然说同样的话。我现在设法解决了这个问题。我所做的就是更换模拟器所显示的设备。只是通过侥幸它我已经让它工作了。也许是因为我正在创建一个iOS应用程序而且iPad需要不同的语法。
感谢您的回复!知道不同的做事方式也是有用的方法。