Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

integer

ios

swift

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()
    }
}
like image 795
Joe Maglione Avatar asked Jun 18 '15 23:06

Joe Maglione


People also ask

What is an integer in Swift?

Integers. Integers are whole numbers with no fractional component, such as 42 and -23 . Integers are either signed (positive, zero, or negative) or unsigned (positive or zero). Swift provides signed and unsigned integers in 8, 16, 32, and 64 bit forms.

What is textfield in Swift?

A control that displays an editable text interface.


2 Answers

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

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

if guess == randomNumber { 
  // your code here
}
like image 138
nick Avatar answered Nov 11 '22 22:11

nick


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.

like image 32
Henrique Barros Avatar answered Nov 12 '22 00:11

Henrique Barros