2015-03-08 108 views
0

我想创建一个if else语句。如果randomNumber等于标签的文本,那么我想给CorrectLabel加1。如果它们不相等,则表示我想将IncorrectLabel加1。这里是我的代码:运算符'!='的模糊使用?

@IBAction func checkButton(sender: UIButton) { 

    if ("\(randomImageGeneratorNumber)" == "\(currentCountLabel.text)"){ 
     currectAmountCorrect += 1 
     CorrectLabel.text = "\(currectAmountCorrect)" 

    }else if ("\(randomImageGeneratorNumber)" != "\(currentCountLabel.text)"){ 
     currentAmountIncorrect += 1 
     IncorrectLabel.text = "\(currentAmountIncorrect)" 
    } 
} 

我对“否则,如果”语句行得到一个错误说“不明确的使用操作符‘!=’”。我不确定这个错误的含义或如何解决。

这个错误是什么意思,它是如何解决的?

+0

如果双方(左和右)都是字符串,那么这个问题已经被固定在雨燕1.2(刚试过它)。与此同时,你可以用'if(lhs == rhs)'来代替(或者只是一个'else',因为你的第一个标准只是一个平等测试,因此暗含不等式) – Alladinian 2015-03-08 21:05:23

回答

1

你不应该这样比较。只需使用.toInt()铸LabelText的为int和比较像的是:

var currentCount = currentCountLabel.text?.toInt() 
if randomImageGeneratorNumber == currentCount { 
    currectAmountCorrect += 1 
    CorrectLabel.text = "\(currectAmountCorrect)" 

} else { 
    currentAmountIncorrect += 1 
    IncorrectLabel.text = "\(currentAmountIncorrect)" 
} 

没有必要把你的价值变成了“”。

+0

当我用你的错误出现了:“String?没有名为'toInt'的成员,这是什么意思,我该如何解决这个问题 – Bigfoot11 2015-03-08 21:04:53

+0

我编辑了代码,你需要首先打开文本 – Christian 2015-03-08 21:06:27

+0

谢谢你的工作! – Bigfoot11 2015-03-09 00:38:06

0

首先,您不需要进行两次比较。代码如下

if true { 
... 
} else if false { 
... 
} 

而且,是的,诠释比较会更好:

if let textAmount = currentCountLabel.text where randomImageGeneratorNumber == textAmount.toInt() { 
    currectAmountCorrect += 1 
    CorrectLabel.text = "\(currectAmountCorrect)" 
} else { 
    currentAmountIncorrect += 1 
    IncorrectLabel.text = "\(currentAmountIncorrect)" 
} 
+0

我试过你的代码,并且'currentAmountCorrect + = 1'代码行中出现错误,提示''Swift编译器错误:永远不会执行'“,但是我将答案的顶部与底部结合在一起。 – Bigfoot11 2015-03-08 21:21:54