2016-11-20 128 views
0

我最近一直在学习使用xCode编写Swift代码。我创建了一个简单的故事板,并试图比较文本框内的文本框值。如何比较文本字段内的文本字段值?

这里是我的代码:

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'

+0

'userTextField'是一个*函数*(或*方法*)。 'sender'是(引用)文本字段... –

回答

0

您比较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)." 
    } 
} 
0

你必须得到你收到你发送的文本框@ IBAction为。

这很简单。发件人是您想要的文本框。

第一:

if sender.text! == "\(yourVariable)" { 
     //do something 
    }else{ 
     //do someting 
    } 

记得用双等于比较。如果只使用一个,它将设置文本字段的值。