私はすぐにクイズゲームを作っていますが、問題が発生しました。私のRandomQuestionGenerator関数は私のcorrectAnswer変数を変更していないようです。私はcorrectAnswer == 1をcorrectAnswer == 0に変更し、ボタンを押したときのコードを変更することでこれをテストしました。私は愚かな明らかな解決策があると推測していますが、私はそれを理解することはできません。 OOPerが言ったように関数が変数を変更していない(スウィフト)
var correctAnswer = 0
func RandomQuestionGenerator(){
var randomQuestion =
Int(arc4random_uniform(UInt32(fullQuestions.count)))
var currentQuestion = fullQuestions[randomQuestion]
var correctAnswer = currentQuestion.answer
Label.text = currentQuestion.Question
Button1.setTitle(currentQuestion.answers[0], for: .normal)
Button2.setTitle(currentQuestion.answers[1], for: .normal)
Button3.setTitle(currentQuestion.answers[2], for: .normal)
Button4.setTitle(currentQuestion.answers[3], for: .normal)
fullQuestions.remove(at: randomQuestion)
}
override func viewDidAppear(_ animated: Bool) {
appendQuestions()
RandomQuestionGenerator()
}
@IBAction func Button1Pressed(_ sender: Any) {
if correctAnswer == 1{
RandomQuestionGenerator()
}
}
'var currentQuestion = fullQuestions [randomQuestion]'行は単純な割り当てではありません。ローカルコードブロックの変数宣言です。新しく宣言された変数は、外側のスコープ内の同じ名前をシャドウします。その行の 'var'を削除するだけです。変数の宣言と代入は常に区別する必要があります。 – OOPer