質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

0回答

343閲覧

比較時の型を統一したいです。

yuki0402

総合スコア4

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/07/26 15:12

前提・実現したいこと

選択肢用のボタンが複数あり、正しいボタンが押されたら正解というコードを書きたいです。
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/ツールのバージョンなど)

できる限り、配列の中身は変えたくないです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/07/26 15:23 編集

相手の文字型とはどういう文字、文字列なんでしょうか
yuki0402

2021/07/26 15:49

相手は、右側のInt(quizArray[0]) で、ローマ字一文字です。
MasakiHori

2021/07/27 07:39 編集

例えば数の1とアルファベットのaは同じでないので比較はfalseです 同様にすべての数とアルファベットは同じでないので比較は常にfalseです なぜ数とアルファベットが同じになると考えられているのかが分からないのですが、なぜそのようにお考えなのでしょうか
yuki0402

2021/07/27 07:47

数とアルファベットは比較しても仕方ないので、押されたボタンから文字情報を送る方法があればなと思います’。sender.tagでは、数字の情報しか送られないので、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問