前提・実現したいこと
3次元配列を利用して要素にスコアを加算していくプログラムを作成しています。
要素を追加するシミュレーションの際にエラーメッセージが出てきました。
エラーコードを吐かずに実行をしたいです。
12122の要素数の3次元配列を動かしたいです。
発生している問題・エラーメッセージ
Thread 1: Fatal error: Index out of range
該当のソースコード
swift
1import UIKit 2 3class RecordDo: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource { 4 5 var data: [[[Int]]] = [[[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]], [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]] 6 7 override func viewDidLoad() { 8 super.viewDidLoad() 9 data[3][4][0] = data[3][4][0] + 1\Thread 1: Fatal error: Index out of range 10 11 test.text = String(data[3][4][0]) 12 } 13 14 @IBOutlet weak var test: UILabel! 15}
試したこと
data[a][b][c]においてaとcの値が2以上の際に上記のエラーコードを吐くようです。
補足情報(FW/ツールのバージョンなど)
xcode12
swift5.1を使用しています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。