Joe Maglione
Joe Maglione

Reputation: 53

How do I convert a UITextField to an integer in Swift 2.0?

I'm a beginner at swift, and was doing some testing. To tell you the truth, I barely know what I'm doing yet, so please try to explain clearly. I was making a random number generator app & wanted to add in a uitextfield so that the user can type in their guess of the next randomly generated number. I keep getting an error when trying to use the if statement to compare the randomly generated number to the number entered In the text field.

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {
    @IBOutlet weak var input: UITextField! 
    @IBOutlet weak var infoLabel: UILabel! // Displayed Before The User Clicks Button For The First Time.
    @IBOutlet weak var numberLabel: UILabel!
    @IBAction func go(sender: AnyObject) {
        // Remove The Text Under The Button 
        infoLabel.text = " "

        // Generate Random Number 
        let randomNumber = Int(arc4random_uniform(11))

        // Change The "Number Label's" Text In Order To Show The Randomly Generated Number To The User        
        numberLabel.text = "\(randomNumber)"

        // Check To See If The User Guessed The Correct Number, And If They Did, Tell Them They Were Right
        if input == randomNumber {
            infoLabel.text = "Your Guess,\(randomNumber) Was Correct!"
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

Upvotes: 5

Views: 21026

Answers (4)

Yerbol
Yerbol

Reputation: 405

in Swift 3 you should compare equivalent number type: for example convert string to int.

let guess = Int(input.text!)! 
if guess == randomNumber {your code}

Upvotes: -1

Henrique Barros
Henrique Barros

Reputation: 868

To access it's int value:

Int(input.text)

The input variable has type UITextField, which is an object and can't be compared to an Int. So you have to access its text, which is an string, and cannot be compared to Int as well, so, convert it to an Int using the expression above, it will give you the int value that the string holds.

Upvotes: 4

abhiDagwar
abhiDagwar

Reputation: 189

You can convert string into int using this:

input.text.toInt()!

Upvotes: 2

nick
nick

Reputation: 19784

To convert the input string to an integer using Swift 2:

let guess:Int? = Int(input.text)

if guess == randomNumber { 
  // your code here
}

Upvotes: 9

Related Questions