Вставка целого числа в массив в Swift

arrays swift integer

530 просмотра

1 ответ

13 Репутация автора

С Swift я пока не очень разбираюсь, и есть проблема, которая начинает немного раздражать.

Я просто хочу добавить целое число в двухмерный массив, но он всегда возвращает один и тот же код ошибки: «фатальная ошибка: индекс массива вне диапазона»

var arrayVolley = [[Int]]()

init(){
    self.arrayVolley = [[]]
}

Вот где я пытаюсь вставить:

func addPoints(score : Int, x : Int, y : Int){

    if (score > 11 || score < 0){ //11 will be translated as 10x
        println("Error on score value")
    }
    else {
        if (x>6 || y>6){
            println("Out of array")
        }
        else{
            arrayVolley[x][y]=score
        }
    }
}

И это мое главное

var i=0
var j=0
for i in 0...6 {
    for j in 0...6{
        println("Entrez le score")
        var scoreinput=input()
        var score = scoreinput.toInt()
        distance.addPoints(score!, x: i, y: j)
    }
}

Большое спасибо за вашу помощь заранее

Автор: Rama Desplats Источник Размещён: 03.08.2015 09:33

Ответы (1)


0 плюса

930 Репутация автора

Решение

Попробуйте использовать append, чтобы добавить целое число в массив, это автоматически следующий idex. Он думает, что если индекс никогда не использовался, то выдает ошибку, например

var test = [Int]()
test.append(2) // array is empty so 0 is added as index
test.append(4)
test.append(5) // 2 is added as max index array is not [2,4,5]
test[0] = 3 // works because the index 0 exist cause the where more then 1 element in array -> [3,4,5]
test[4] = 5 // does not work cause index for never added with append 

или вы инициализируете массив в правильном размере, но ему нужен размер:

var test = [Int](count: 5, repeatedValue: 0) // [0,0,0,0,0]
test[0] = 3 //[3,0,0,0,0]
test[4] = 5 [3,0,0,0,5]

Надеюсь, это поможет вам, если нет, пожалуйста, не стесняйтесь комментировать.

Автор: Bierbarbar Размещён: 03.08.2015 09:44
Вопросы из категории :
32x32