2

I am trying to build an app that makes calculations. My interface shows the numbers in a label. When I try to convert the label.text to an int, to add it to something else I get a nullable (int?) and they cannot be used with "+". How do I convert an int? to int in swift?

nhgrif
  • 61,578
  • 25
  • 134
  • 173
Klas Zetterlund
  • 121
  • 2
  • 12
  • Basically you have to unpack your optional. Take a look here: http://stackoverflow.com/questions/24030053/use-of-an-optional-value-in-swift – 3vangelos Dec 08 '15 at 12:56
  • That is called an "Optional" in Swift, not a nullable. Optionals are a key concept of Swift and well documented in the Swift book. – Martin R Dec 08 '15 at 13:05
  • See also this thread: http://stackoverflow.com/questions/24115141/swift-converting-string-to-int. – Martin R Dec 08 '15 at 13:08

1 Answers1

1

Code example for the problem:

     let a:Int? = Int(firstText.text) // firstText is UITextField
     let b:Int? = Int(secondText.text) // secondText is UITextField

        if let first = a as? Int, second = b as? Int {
            var ans = first + second
            answerLabel.text = "Answer is \(ans)"       // answerLabel ie UILabel
        } else {
            answerLabel.text = "Input values are not numberic"
        }
Oleg Gordiichuk
  • 15,240
  • 7
  • 60
  • 100