【问题标题】:How do I convert a UITextField to an integer in Swift 2.0?如何在 Swift 2.0 中将 UITextField 转换为整数?
【发布时间】:2015-09-04 19:20:03
【问题描述】:

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

【问题讨论】:

  • 当您将 UITextField 类型与 Int 类型进行比较时,您希望拥有什么?更正为if([input.text intValue] == randomNumber) //Obj-C 语法
  • 你得到什么错误信息?

标签: ios swift integer


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢!!!我不得不在 input.text 后面加上一个感叹号,但之后它就完美运行了。
【解决方案2】:

要访问它的 int 值:

Int(input.text)

输入变量的类型为 UITextField,它是一个对象,不能与 Int 进行比较。所以你必须访问它的文本,它是一个字符串,也不能与 Int 进行比较,所以,使用上面的表达式将它转换为一个 Int,它会给你字符串包含的 int 值。

【讨论】:

  • 对于谁反对这个,你能解释一下为什么吗?我看不出他的回答有什么问题。
  • @nick 也许是因为问题是关于 Swift 2,其中 toInt() 已被删除。
【解决方案3】:

您可以使用以下方法将字符串转换为 int:

input.text.toInt()!

【讨论】:

  • 不,不是在 Swift 2 中——这是针对 Swift 1 的。
【解决方案4】:

在 Swift 3 中 您应该比较等效的数字类型:例如将字符串转换为整数。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    相关资源
    最近更新 更多