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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

0回答

879閲覧

sender.tagを文字として認識させたいです。

yuki0402

総合スコア4

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

0クリップ

投稿2021/07/25 11:59

編集2021/07/26 05:52

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

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

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

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

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

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

tanakana

2021/07/25 12:47

sender.tagとquizArray[0]中身を確認して 書いてください。
yuki0402

2021/07/25 16:01

すみません、中身を確認というのは中身を具体的に示して記入すればよろしいでしょうか。
yuki0402

2021/07/26 05:53

質問内容をsender.tagに絞って更新しました。よろしくお願いします。
tanakana

2021/07/26 06:03

@IBAction func btnAction(sender: UIButton){ print(sender.tag,quizArray[0]) 上の行追加して、何が出力されているかを確認してください。
yuki0402

2021/07/26 06:27

シミュレーター上のボタンに表示されてる文字と、printで表示されてる文字が一致していない事が分かりました。大きな発見です。ありがとうございます。
tanakana

2021/07/27 12:19

比較したい文字列が何かわからないと、回答がつかないとおもいますが 具体的に書くべきではないでしょうか?
hoshi-takanori

2021/07/28 11:10

sender.tag は Int 型なので、文字列にするには工夫が必要です。というか、する必要もないはず。 確か「配列は0が問題文、1が正解番号、2,3,4,5は選択肢となります。」だったと思いますが、各ボタンの tag に 2, 3, 4, 5 を入れておいて、1 の正解番号と比べればいいのでは。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問