Неразрешенный Идентификатор 'count' - PullRequest
0 голосов
/ 26 сентября 2018

Вот ошибка, которую я вижу.

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 голосов
/ 26 сентября 2018

Следующее должно работать, у вас не был правильный синтаксис для длины массива.Обратите внимание, что если вы не инициализировали массив вопросов, это может привести к сбою.Поэтому вы можете захотеть добавить охрану в свой код.Возможно, используйте следующие

@IBAction func cardButtonHandle(_ sender: Any) {
    cardButton.isEnabled = true
    if questionIdx < (mcArray!.count) - 1 { // There are still more questions
        questionIdx += 1 //
    } else {
        questionIdx = 0
    }
     nextQuestion()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...