現在、四択問題のアプリを参考書を読みながら作成しております。csvファイルには「問題文,答えの番号,選択肢」が入っていてそれを一度Stringで読み込んで、ボタンを押した時にcsvファイルの「答えの番号」をInt型にしようとしているのですが、そこでうまく処理ができません。最後に四択ボタンを押した時のメソッドと書いてありますが、そこで配列csvArrayをInt型にしようとすると if sender.tag == csvArray[1].toInt(){ ←Thread1 : EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)と出てしまいます。どのような問題があるのでしょうか?
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var bodyTextView: UITextView!
@IBOutlet weak var Button1: UIButton!
@IBOutlet weak var Button2: UIButton!
@IBOutlet weak var Button3: UIButton!
@IBOutlet weak var Button4: UIButton!
@IBOutlet weak var judgeImageView: UIImageView!
var csvArray=[String]() override func viewDidLoad() { super.viewDidLoad() //CSV読み込み let csvBundle = NSBundle.mainBundle().pathForResource("kentei",ofType:"csv") //エラー値の設定 var encodingError:NSError?=nil //csvBundleのパスを読み込み、UTF8に変換して、NSStringに格納 let csvData = NSString(contentsOfFile: csvBundle!,encoding:NSUTF8StringEncoding,error:&encodingError)! //改行コードが "\r"で行われている場合は""\nに変更する let lineChange=csvData.stringByReplacingOccurrencesOfString("\r",withString:"\n") //改行こーどで区切って配列csvArrayに格納 let csvArray:Array=lineChange.componentsSeparatedByString(",") //bodyTextViewに説明文を表示 bodyTextView.text=csvArray[0] Button1.setTitle(csvArray[2],forState:.Normal) Button2.setTitle(csvArray[3],forState:.Normal) Button3.setTitle(csvArray[4],forState:.Normal) Button4.setTitle(csvArray[5],forState:.Normal) } //四択ボタンを押した時のメソッド @IBAction func btnAction(sender: UIButton){ if sender.tag == csvArray[1].toInt(){ ←Thread1 : EXC_BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)と出てしまいます。 judgeImageView.image=UIImage(named:"maru.png") } else{ judgeImageView.image = UIImage(named:"batsu.png") } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。