I have not been studying iOS or Swift for very long. With one of the latest Xcode updates, many of the apps I have made on my computer now appear to be using obsolete syntax.
Xcode talks us through converting it to new syntax but often that does not solve anything and I have a new problem. Here is code for one of the first app I made after the syntax has been converted. I am getting an error saying:
Value of optional type 'String?' not unwrapped; did you mean to use '!' or '?' ?
I know this must be really simple but I don't know how to fix it. Here is my code:
@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"
}
}
I tried that. But it still said the same thing. I have managed to fix it now. All I did was change device the simulator was displaying in. Just by fluke it I have got it working. Maybe it was because I was creating an iOS app and the iPad required different syntax.
Thank you for your reply! It is also ways useful to know different ways to do something.
The
text
property of a text label is an optional, you have to unwrap it before using it.Even better: