未解析的标识符“计数”

时间:2018-09-26 01:21:08

标签: swift

这是我看到的错误。

enter image description here

“ cardButton”负责显示下一个问题。这是我正在尝试制作的小型纸牌应用程序游戏,从图像中可以看到,这是我遇到代码问题的地方。

代码如下:

import UIKit

class MultipleViewController: UIViewController {
    @IBOutlet weak var questionLabel2: UILabel!
    @IBOutlet var answerButtons: [UIButton]!
    @IBOutlet weak var cardButton: UIButton!

    @IBAction func cardButtonHandle(_ sender: Any) {
        cardButton.isEnabled = true
        if questionIdx < count(mcArray) - 1 { // There are still more questions
            questionIdx += 1 //
        } else {
            questionIdx = 0
        }
         nextQuestion()
    }

    @IBAction func answerButtonHandle(_ sender: UIButton) {
        if sender.titleLabel?.text == correctAnswer{
            sender.backgroundColor = UIColor.green
            print("Correct!")
        } else {
            sender.backgroundColor = UIColor.red
            print("Wrong Answer")
        }
        for button in answerButtons{
            button.isEnabled = false
            if button.titleLabel?.text == correctAnswer {
                button.backgroundColor = UIColor.green
            }
        }
        cardButton.isEnabled = true // next question
    }

    var correctAnswer: String? // correct answers
    var answers = [String]()  // answers
    var question : String? // Questions
    var questionIdx = 0 // not sure what this is ?

    override func viewDidLoad() {
        super.viewDidLoad()
       // titleForButtons() // call buttons as soon its loaded..
        cardButton.isEnabled = false
        nextQuestion()
    }

    func nextQuestion (){
       let currentQuestion = mcArray![questionIdx]
        answers = currentQuestion["Answers"] as! [String]
        correctAnswer = currentQuestion["CorrectAnswer"] as? String
        question = currentQuestion["Question"] as? String
        titleForButtons ()
    }

    func titleForButtons (){
        for (idx,button) in answerButtons .enumerated() {
            button.titleLabel?.lineBreakMode = .byWordWrapping
            button.setTitle(answers[idx],for:.normal)
            button.isEnabled = true
        }
        questionLabel2.text = question
    }
}

1 个答案:

答案 0 :(得分:1)

以下内容应该起作用,您没有正确的数组长度语法。请注意,如果您尚未初始化问题数组,则可能会导致崩溃。因此,您可能需要在代码中添加防护措施。也许使用以下

@IBAction func cardButtonHandle(_ sender: Any) {
    cardButton.isEnabled = true
    if questionIdx < (mcArray!.count) - 1 { // There are still more questions
        questionIdx += 1 //
    } else {
        questionIdx = 0
    }
     nextQuestion()
}