###前提・実現したいこと
今カルタの文を読んでくれるアプリ?を作っています。今できているところは48種類のカルタの文をランダムに読んでくれるところです。しかし、一度読んだ文もまた繰り返されます。それを一度読んだものはもう読まないようにしたいです。
ボタンを押すと次の文と最初の文字を表示しその文を
読み上げてくれるようになっています。
###該当のソースコード
swift
1 import UIKit 2 3import AVFoundation 4 5class ViewController: UIViewController { 6 7 @IBOutlet weak var QuestionLabel: UILabel! 8 9 @IBOutlet weak var Button1: UIButton! 10 11 @IBOutlet weak var Next: UIButton! 12 13 var CorrectAnswer = String\(\) 14 15 override func viewDidLoad\(\) { 16 super\.viewDidLoad\(\) 17 18 Hide\(\) 19 RandomQuestions\(\) 20 21 } 22 23 override func didReceiveMemoryWarning\(\) { 24 super\.didReceiveMemoryWarning\(\) 25 26 } 27 func RandomQuestions\(\){ 28 29 var RandomNumber = arc4random\(\) % 48 30 31 RandomNumber \+= 1 32 33 switch \(RandomNumber\) { 34 35 case 1: 36 37 QuestionLabel\.text = "モンゴルの民族模様は自由の印" 38 Button1\.setTitle\("も", for: \.normal\) 39//文を読む 40 let synthesizer = AVSpeechSynthesizer\(\) 41 let utterance = AVSpeechUtterance\(string: "モンゴルの民族模様は自由の印。"\) 42 synthesizer\.speak\(utterance\) 43 44 break 45 46 case 2: 47 48 QuestionLabel\.text = "三色の統一ドイツ黒赤金" 49 Button1\.setTitle\("さ", for: \.normal\) 50 51 let synthesizer = AVSpeechSynthesizer\(\) 52 let utterance = AVSpeechUtterance\(string: "三色の統一ドイツ黒赤金"\) 53 synthesizer\.speak\(utterance\) 54 55 56 57 break 58 59 case 3: 60 61 62 QuestionLabel\.text = "エクアドルコンドルが飛ぶアンデスへ" 63 Button1\.setTitle\("え", for: \.normal\) 64 65 let synthesizer = AVSpeechSynthesizer\(\) 66 let utterance = AVSpeechUtterance\(string: "エクアドルコンドルが飛ぶアンデスへ"\) 67 synthesizer\.speak\(utterance\) 68 69 70 break 71 72//略 73 74 75 76 case 48: 77 78 79 QuestionLabel\.text = "バーレーンはギザギザ模様で鮮やかに" 80 Button1\.setTitle\("ば", for: \.normal\) 81 82 let synthesizer = AVSpeechSynthesizer\(\) 83 let utterance = AVSpeechUtterance\(string: "バーレーンはギザギザ模様で鮮やかに"\) 84 synthesizer\.speak\(utterance\) 85 break 86 87 default: 88 89 break 90 91 } 92 93 } 94 95 func Hide\(\){ 96 97 Next\.isHidden = true 98 } 99 100 func UnHide\(\){ 101 102 Next\.isHidden = false 103 } 104 105 @IBAction func Button1Action\(_ sender: AnyObject\) { 106 107 UnHide\(\) 108 109 } 110 111 @IBAction func Next\(_ sender: AnyObject\) { 112 RandomQuestions\(\) 113 } 114 115} 116 117 118
###試したこと
nsuser defaultsを使ったり、空の配列を作り一度つかったものを入れたりなどと案は思いつきますが、どのようにコードを書くのかわかりません。
回答4件
あなたの回答
tips
プレビュー