问题
beginner of swift, follow the book and get the error ""
here is the code:
@IBAction func buttonTouched(sender : UIButton) {
var buttonTag : Int = sender.tag
if let colorTouched = ButtonColor(rawValue: buttonTag) {
if currentPlayer == .Computer {
return
}
//error here:
if colorTouched = inputs[indexOfNextButtonToTouch] {
indexOfNextButtonToTouch += 1
if indexOfNextButtonToTouch == inputs.count {
// 玩家成功地完成了这一轮
if advanceGame() == false {
playerWins()
}
indexOfNextButtonToTouch = 0
}
else {
}
}
else {
playerLoses()
indexOfNextButtonToTouch = 0
}
}
}
so if I cannot use "if let colorTouched", what should I do with it?
回答1:
You should be using ==
for comparison instead of =
(which is assignment):
@IBAction func buttonTouched(sender : UIButton) {
var buttonTag : Int = sender.tag
if let colorTouched = ButtonColor(rawValue: buttonTag) {
if currentPlayer == .Computer {
return
}
// note double equals
if colorTouched == inputs[indexOfNextButtonToTouch] {
...
来源:https://stackoverflow.com/questions/37399828/cannot-assign-to-value-colortouched-is-a-let-constant