エラーの内容的にはString型とBool型でそれぞれ別だよということだと思うのですが、下記のViewControllerを見返しても問題箇所がわかりません。解消させるために見なければいけない場所をご存知でしたら、ご教授お願いいたします。
if correctAnswer == pickedAnswer{ のところでエラーが出ます(コードに目標をつけてます)
Swift
1 2import UIKit 3 4class ViewController: UIViewController, NowScoreDelegate { 5 6 7 8 @IBOutlet weak var imageView: UIImageView! 9 10 @IBOutlet weak var maxScoreLabel: UILabel! 11 12 var correctCount = 0 13 var wrongCount = 0 14 var maxScore = 0 15 var questionNumber = 0 16 17 18 let imagesList = ImagesList() 19 20 //IBActionで検知した正当がどちらなのか検知する変数 21 var pickedAnswer = false 22 23 var soundFile = SoundFile() 24 25 var changeColor = ChangeColler() 26 27 var gradientLayer = CAGradientLayer() 28 29 30 override func viewDidLoad() { 31 super.viewDidLoad() 32 33 gradientLayer = changeColor.changeColler(topR: 0.07, topG: 0.13, topB: 0.13, topAlpha: 1.0, bottomR: 0.54, bottomG: 0.74, bottomB: 0.74, bottomAlpha: 1.0) 34 gradientLayer.frame = view.bounds //View全体に広がる 35 36 view.layer.insertSublayer(gradientLayer, at: 0) 37 38 39 imageView.layer.cornerRadius = 20.0 40 } 41 42 override func viewWillAppear(_ animated: Bool) { 43 super.viewWillAppear(animated) 44 45 correctCount = 0 46 wrongCount = 0 47 questionNumber = 0 48 49 imageView.image = UIImage(named: imagesList.list[0].imageText) 50 51 if UserDefaults.standard.object(forKey: "beforeCount") != nil { 52 maxScore = UserDefaults.standard.object(forKey: "beforeCount") as! Int 53 } 54 55 maxScoreLabel.text = String(maxScore) 56 57 } 58 59 @IBAction func answer(_ sender: Any) { 60 61 if (sender as AnyObject).tag == 1 { 62 63 soundFile.playSound(fileName: "maruSound", extensionName: "mp3") 64 65 pickedAnswer = true 66 //丸ボタンが押下されたとき 67 68 //ユーザーが押したボタンが丸だった 69 70 //丸ボタンの音声を流す 71 72 73 }else if (sender as AnyObject).tag == 2 { 74 75 soundFile.playSound(fileName: "bastuSound", extensionName: "mp3") 76 77 pickedAnswer = false 78 //バツボタンが押下されたとき 79 80 //ユーザーが押したボタンがバツだった 81 82 //バツボタンの音声を流す 83 84 85 86 } 87 88 //チェック 89 //回答ががあっているかどうか 90 //pickedAnswerとImagesListのcorrectOfNotの値が一致しているかどうか 91 check() 92 nextQuestions() 93 94 95 96 } 97 98 func check() { 99 100 let correctAnswer = imagesList.list[questionNumber].imageText 101 if correctAnswer == pickedAnswer{ ※ここで表題のエラーが出る。 102 103 print("正解") 104 correctCount = correctCount + 1 105 106 } else { 107 print("間違い") 108 wrongCount = wrongCount + 1 109 } 110 } 111 112 func nextQuestions() { 113 114 if questionNumber <= 9 { 115 116 questionNumber = questionNumber + 1 117 imageView.image = UIImage(named: imagesList.list[questionNumber].imageText) 118 119 } else { 120 print("問題終了") 121 //画面遷移 122 performSegue(withIdentifier: "next", sender: nil) 123 124 } 125 126 } 127 func nowScore(score: Int) { 128 129 soundFile.playSound(fileName: "sound", extensionName: "mp3") 130 maxScoreLabel.text = String(score) 131 132 } 133 134 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 135 if segue.identifier == "next" { 136 137 let nextVC = segue.destination as! NextViewController 138 139 nextVC.correctedCount = correctCount 140 nextVC.wrongCount = wrongCount 141 nextVC.delegate = self 142 } 143 } 144 } 145
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/30 08:04