我最近一直在学习如何使用xCode编写Swift代码。我创建了一个简单的故事板,并试图比较textfield中的textfield值。
这是我的代码:
var numberone = 0
var numbertwo = 0
var answerstring :String = ""
var answerint :Int = 0
var userInput :String = ""
@IBAction func userTextField(_ sender: UITextField) {
numberone = randomInt(min: 1, max: 9)
numbertwo = randomInt(min: 1, max: 9)
questionLabel.text = "\(numberone) + \(numbertwo)"
answerint = numberone + numbertwo
answerstring = "\(answerint)"
if userTextField.text! = "\(answerstring)" {
questionResponse.text! = "Correct!"
} else {
questionResponse.text! = "Incorrect. The answer was \(answerint)."
}错误出现在userTextField.text!,上,它说:
Value of type '(UITextField) -> ()' has no member 'text'
发布于 2016-11-20 15:17:55
您正在比较userTextField,它是方法名,它应该是sender:
@IBAction func userTextField(_ sender: UITextField) {
numberone = randomInt(min: 1, max: 9)
numbertwo = randomInt(min: 1, max: 9)
questionLabel.text = "\(numberone) + \(numbertwo)"
answerint = numberone + numbertwo
answerstring = "\(answerint)"
// here is the change, 'sender' instead of 'userTextField':
if sender.text! = "\(answerstring)" {
questionResponse.text! = "Correct!"
} else {
questionResponse.text! = "Incorrect. The answer was \(answerint)."
}
}发布于 2016-11-20 15:19:49
您必须从您在@IBAction上接收到的发件人那里获取textfield。
这很简单。发件人是您想要的文本字段。
第一:
if sender.text! == "\(yourVariable)" {
//do something
}else{
//do someting
}记得用双等于来比较。如果只使用一个,它将设置textfield的值。
https://stackoverflow.com/questions/40705642
复制相似问题