我是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()
}
}
答案 0 :(得分:9)
使用Swift 2将输入字符串转换为整数:
let guess:Int? = Int(input.text)
if guess == randomNumber {
// your code here
}
答案 1 :(得分:3)
要访问它的int值:
Int(input.text)
输入变量的类型为UITextField,它是一个对象,无法与Int进行比较。所以你必须访问它的文本,这是一个字符串,并且也不能与Int进行比较,因此,使用上面的表达式将它转换为Int,它将为你提供字符串所包含的int值。
答案 2 :(得分:2)
您可以使用以下方法将字符串转换为int:
<强> input.text.toInt()!强>
答案 3 :(得分:-2)
在Swift 3中 您应该比较等效数字类型:例如将字符串转换为int。
let guess = Int(input.text!)!
if guess == randomNumber {your code}