如何在Swift 2.0中将UITextField转换为整数?

5

我是Swift的初学者,正在进行一些测试。说实话,我几乎不知道自己在做什么,请尽量清晰地解释一下。我正在制作一个随机数生成器应用程序,并希望添加一个uitextfield,以便用户可以输入他们猜测的下一个随机生成的数字。但是,当我试图使用if语句将随机生成的数字与文本字段中输入的数字进行比较时,出现了错误。

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()
    }
}

1
当您将UITextField类型与Int类型进行比较时,您希望得到什么?请将其更正为if([input.text intValue] == randomNumber) //Obj-C语法 - David
你收到了什么错误信息? - Cel Skeggs
4个回答

9

使用Swift 2将输入字符串转换为整数:

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

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

非常感谢!!!我只是在input.text后面加了一个感叹号,但之后它就完美地工作了。 - Joe Maglione

4

要访问它的整数值:

Int(input.text)

输入变量的类型为UITextField,它是一个对象,不能与Int进行比较。因此,您需要访问其文本,它是一个字符串,也不能与Int进行比较,所以使用上述表达式将其转换为Int,它将给出字符串持有的int值。

给那位踩了这个回答的人,能否解释一下为什么?我没有看出他的回答有任何问题。 - nick
@nick 可能是因为问题涉及到 Swift 2,其中 toInt() 已被移除。 - Mick MacCallum

2
您可以使用以下方式将字符串转换为整数:

不,这不是针对Swift 2的 - 这是针对Swift 1的。 - Eric Aya

-1
在Swift 3中,您应该比较等效的数字类型:例如将字符串转换为整数。
let guess = Int(input.text!)! 
if guess == randomNumber {your code}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接