Индекс массива вне диапазона

var Password1 : Array = [Int]()
var Password2 : Array = [Int]()

while Password1.count < 800 {

    var RandomNum1 = Int(arc4random_uniform(256))
    var RandomNum2 = Int(arc4random_uniform(256))

    Password1[Password1.count] = RandomNum1
    Password2[Password2.count] = RandomNum2

}

По линии Password1[Password1.count] = RandomNum1 это появляется -> EXC_BAD_INSTRUCTION (код =EXC_I386_INVOP, субкод =0x0)

2 ответа

Ваш Password1 а также Password2 массивы пусты. Поэтому вы не можете индексировать их, не получив ошибку. использование append создать ваши массивы:

Password1.append(RandomNum1)
Password2.append(RandomNum2)

Кроме того, имена переменных должны начинаться со строчной буквы.


Если вы хотите иметь возможность индексировать массивы, сначала инициализируйте их нулями:

var password1 = [Int](count: 800, repeatedValue: 0)
var password2 = [Int](count: 800, repeatedValue: 0)

for i in 0..<800 {
    var randomNum1 = Int(arc4random_uniform(256))
    var randomNum2 = Int(arc4random_uniform(256))

    password1[i] = randomNum1
    password2[i] = randomNum2
}

Вы пытаетесь заменить значение в ключах, которые не существуют. Это способ PHP, а не Swift.

Поскольку вы уже инициализируете массивы, вам нужно вызвать append для них, чтобы добавить элемент в конец массива.

Другие вопросы по тегам