前提・実現したいこと
ここに質問の内容を詳しく書いてください。
swiftでクイズアプリを作っています。
CSVファイルに書いてあるクイズの問題の選択肢を配列を使って、ランダムに表示したいのですが、そもそも要素番号を複数加える事ができませんでした。
発生している問題・エラーメッセージ
余分なデータが含まれていると表示されてしまいます。
エラーメッセージ Extra arguments at positions #2, #3, #4 in call
該当のソースコード
swift
1 var csvArray: [String] = [] 2 var quizArray: [String] = [] 3 quizArray = csvArray[quizCount].components(separatedBy: ",") 4 quizNumberLabel.text = "第(quizCount + 1)問" 5 quizTextView.text = quizArray[0] 6 answerButton1.setTitle(quizArray[2,3,4,5]/*エラー部分*/, for: .normal) 7 answerButton2.setTitle(quizArray[3], for: .normal) 8 answerButton3.setTitle(quizArray[4], for: .normal) 9 answerButton4.setTitle(quizArray[5], for: .normal) 10
試したこと
特にございません、
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
answerButton1のようにボタンひとつにつき、ひとつの配列の要素を取得する仕様となっております。
配列は0が問題文、1が正解番号、2,3,4,5は選択肢となります。
`answerButton1.setTitle(quizArray[2,3,4,5]/*エラー部分*/, for: .normal)`
上のコードの意図を汲み取れなかったのですけれど、何をしようと思ってこのコードを書かれたのですか?
説明が足りず申し訳ありません。
array.randomElement()のように、配列の中の複数の要素からランダムに一つのデータを取得したいと考えて折りました。
なるほど、わかりました。そうすると「4つの選択肢の中から、ランダムで1つ選んだ値を answerButton1 のタイトルに設定する」ということですね。
他の answerButton2, answerButton3, answerButton4 については「ランダムではなく、それぞれ二番目の選択肢、三番目の選択肢、四番目の選択肢をタイトルとして設定する」コードに見えて、answerButton1 の様子と違うように見えるのですけど、ここは将来的にはもしかして「answerButton1 〜 answerButton4 のそれぞれに、用意した4つの選択肢それぞれをランダムな順番で入れる」のを考えていたりしますか?
仰る通りで、ボタンそれぞれに4つの選択肢を割り当てようと考えております。
可能であれば、4つ以上の選択肢の中から4つのボタンそれぞれにランダムで割り当て、尚且正解の選択肢が含まれるように仕掛けたいと考えております。
追記:CSVファイルについてです。配列の要素は{ぼうしの中に入っている動物はなに?,4,かめ,ウサギ,キリン,うし}です。順番に[0]が問題文、[1]が正解番号、[2,3,4,5]は選択肢となります。
回答1件
あなたの回答
tips
プレビュー