2015-10-01 4 views
5

Я не очень долго изучал iOS или Swift. С одним из последних обновлений Xcode многие приложения, которые я сделал на моем компьютере, теперь, похоже, используют устаревший синтаксис.«Значение необязательного типа« String? » не разворачивается, вы хотели использовать '!' или '?' ?»

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

ответ

10

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

Я попробовал. Но он все еще сказал то же самое. Мне удалось исправить это сейчас. Все, что я делал, это устройство смены, на котором симулятор показывал. Как раз по этому делу у меня это работает. Возможно, это было потому, что я создавал приложение для iOS, а iPad требовал другого синтаксиса.

Благодарим вас за ответ! Также полезно знать разные способы сделать что-то.

Смежные вопросы

 Смежные вопросы