2015-09-27 3 views
0

Я использую цикл for для прохождения массива строк. Для каждой строки я нахожу для нее новое значение. После нахождения нового значения мне нужно заменить строку на соответствующий индекс.Как заменить строку в массиве новой строкой?

var myStrings = [String]() 

for var i = 0; i < myStrings.count; i++ { 

    let newValue: String = //Do some work to find the new value 

    myStrings[i] = newValue //This is what I thought would work, but I'm getting a crash and error saying that the array is out of index. 

} 

Ошибка говорит о том, что массив не соответствует индексу.

+1

Какая строка дает ошибку? Кроме того, что в вашей линии создает newValue? Кроме того, вам, вероятно, будет лучше использовать функцию карты для этого. – Fogmeister

+1

Вы можете заменить 'myStrings [i]' другим значением, но вы не можете создать там значение, если индекс не существует. Вот почему вы получаете индекс за пределами диапазона. Попробуйте использовать 'append' для добавления элементов в массив. – vacawama

ответ

0

Выяснил это. Моя работа по поиску newValue заключалась в использовании некоторых закрытий. Мне пришлось переопределить i как index внутри крышки, чтобы иметь возможность использовать его внутри затворов.

Смежные вопросы