Swiftでクイズアプリを作っております。和音の音声が鳴り、当てはまるものを4つの選択肢から選ぶというものなんですが、正解の選択肢を選んでも不正解の選択肢を選んでも間違っている判定になっていします。
毎度、音声に当てはまる正解の選択肢は必ず表示されますので、そこは問題ありません。
該当のソースコード
Swift
1 var csvArray: [String] = [] 2 var quizArray: [String] = [] 3 quizArray = csvArray[quizCount].components(separatedBy: ",") 4//CSVファイル(csvArray)に複数の問題の選択肢が含まれております。quizCountはCSVファイルの場所(行目)を示します。1行目には1問目、2行目には2問目、、、 5 @IBAction func btnAction(sender: UIButton){ 6 if sender.tag == Int(quizArray[0]){ 7//quizArray[0]は正解の選択肢で、他のindex(1〜)は不正解の選択肢 8 print("正解") 9 correctCount += 1 10 judgeImageView.image = UIImage(named: "correct") 11 12 }else { 13 print ("不正解") 14 judgeImageView.image = UIImage(named: "incorrect") 15 16 } 17 print("スコア:(correctCount)") 18 judgeImageView.isHidden = false 19 answerButton1.isEnabled = false 20 answerButton2.isEnabled = false 21 answerButton3.isEnabled = false 22 answerButton4.isEnabled = false 23 DispatchQueue.main.asyncAfter(deadline: .now() + 0.5){ 24 self.judgeImageView.isHidden = true 25 self.answerButton1.isEnabled = true 26 self.answerButton2.isEnabled = true 27 self.answerButton3.isEnabled = true 28 self.answerButton4.isEnabled = true 29 self.nextQuiz() 30 } 31 32 }
実現したいこと
if sender.tag == Int(quizArray[0])では数字での比較になっているので、これを選択肢で選ばれた文字をquizArray[0]と比較する文字型での比較に変更したいと考えております。
if sender.tagはMain.storyboardにある選択肢のボタンを押された時に送られるタグですが、これをなんとかして文字の情報として送る方法はありませんでしょうか?
tagの数値はattributes inspectorで設定しました。
補足情報(FW/ツールのバージョンなど)
Xcode12.4
あなたの回答
tips
プレビュー