正誤判定を正しく行いたい
Swiftを用いで四択クイズのアプリを作成しています。非常に初歩的な質問で申し訳ないのですが、正解の判定をしようとした時、正しく判定されない(appDelegateにbadという不正解を示すフラグがあるのですがそれがデフォルトのtrueのまま更新されなかったり、正解でないところで正解の判定をする事が多い)状況となっています。調べて見ましたが同じ方法を取っている所は見当たらず、teratailを当たらせていただきました
わたしのやり方がまずいのでしょうか、それともソースコードに論理エラーがあるのでしょうか。ご教授いただけると幸いです。
発生している問題・エラーメッセージ
正誤判定の際、判定が正しく行われません。 初期値のまま不正解かどうかを示すflag"bad"が更新されません。 更新されても正しくないところで判定がなされています。
該当のソースコード
Swift4.2
1 func judge(answer :String){ //回答の判定はここ 2 let appDelegate = UIApplication.shared.delegate as! AppDelegate //AppDelegateのインスタンスを取得 3 if answer == correct{ 4 // answer(ボタンの文章) がcorrectと等しいか 5 appDelegate.seikai = appDelegate.seikai + 1 6//正解なので正解数を1加算する 変数はInt型"seikai" 7 appDelegate.bad = false 8 }else { 9//不正解なら不正解判定だけして戻る 10 appDelegate.bad = true 11 } 12 } 13 14 @IBAction func select1(_ sender: UIButton) { //1番を回答した時呼ばれる 15 let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate //AppDelegateのインスタンスを取得 16 17 appDelegate.counter = appDelegate.counter + 1 //現在の問題数を計算 18 let storyboard: UIStoryboard = self.storyboard! 19 let v5 = storyboard.instantiateViewController(withIdentifier: "v5") 20//"ViewController5.swift"に遷移する準備 21 self.present(v5,animated: true, completion: nil) 22 judge(answer: (sentaku1.titleLabel?.text)!) //judge: (answer: String)を呼び出し、引数にはボタンに表示されている文章を設定する(読み込みもとのリソースが正解を文字で表示している為) 23 }
試したこと
・switch case文に置き換えてみましたが等しいことを示す事ができず失敗しました
・badの初期値を変えてみましたが先程の状態が続くのみです
補足情報(FW/ツールのバージョンなど)
OS:macOS High Sierra
IDE:Xcode10
Programming Language:Swift 4.2
回答3件
あなたの回答
tips
プレビュー