2015-03-08 111 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