"Значение необязательного типа 'String?' не развернутый, ты хотел использовать '!' или же '?'?"
Я не изучал 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"
}
}
2 ответа
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 требовал другого синтаксиса.
Спасибо за ваш ответ! Также полезно знать разные способы сделать что-то.