Swiftでの2次元配列の定義、初期化

2次元配列を使う必要があった。普通に検索して出て来る定義、初期化の方法は以下の通り。

var DataGobanBoard = [[Int]]() // 2D Array for goban
var DataGobanCheckBoard = [[Bool]]() // 2D Array for check

ところが、この状態で「DataGobanBoard[y][x] = DataGobanSpace」のように添え字でアクセスすると、「Index Out of range」でアプリが落ちる。

結論として、次のようにすれば、添え字アクセスが可能となる。

var DataGobanBoard = [[Int]](repeating: [Int](repeating: 0, count: 21), count:21) // 2D Array for goban
var DataGobanCheckBoard = [[Bool]](repeating: [Bool](repeating:false, count:21), count:21) // 2D Array for check

参考
Error: “array index out of range” in multidimensional array
How to Declare a Multidimensional Boolean array in Swift?

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL