前提・実現したいこと
選択肢用のボタンが複数あり、正しいボタンが押されたら正解というコードを書きたいです。
sender.tagで押されたボタンの番号がおくられますが、それと比較したい相手は文字型なので比較ができません。
どちらかに統一しなければなりませんが、押されたボタンを文字として認識させるのはかなり大変なので数値型での統一が現実的かなと思います。
比較のコード
@IBAction func btnAction(sender: UIButton){ if sender.tag == Int(quizArray[0]) { print("正解") correctCount += 1 judgeImageView.image = UIImage(named: "correct") }else { print ("不正解") judgeImageView.image = UIImage(named: "incorrect") } print("スコア:(correctCount)") judgeImageView.isHidden = false answerButton1.isEnabled = false answerButton2.isEnabled = false answerButton3.isEnabled = false answerButton4.isEnabled = false DispatchQueue.main.asyncAfter(deadline: .now() + 0.5){ self.judgeImageView.isHidden = true self.answerButton1.isEnabled = true self.answerButton2.isEnabled = true self.answerButton3.isEnabled = true self.answerButton4.isEnabled = true self.nextQuiz() } }
該当のソースコード
if sender.tag == Int(quizArray[0]) //quizArray[0]は配列から引っ張ってきたもので、0番目に正解の選択肢が仕掛けられております。
試したこと
print( sender.tag , Int(quizArray[0]))のようにプリントを仕掛けましたが、当然Int(quizArray[0]) はnilと表示されてしまいます。
補足情報(FW/ツールのバージョンなど)
できる限り、配列の中身は変えたくないです。
あなたの回答
tips
プレビュー