Во-первых, неясно, почему вы храните эти данные раздельно. 800 записей довольно мало. Поддержание более 40 массивов кажется очень сложным.
Ваша ошибка в том, что вы считаете слишком высоко. Последний индекс titoliA.count - 1
. Индексы начинаются с нуля. Вместо этой строки:
for _ in stride(from: 0, to: titoliA.count , by: 1) {
Вы имеете в виду это:
for a in titolaA.indices {
Вся функция будет выглядеть так:
func creaListaCanzoni(){
for a in titolaA.indices {
let voce = VociMontagna(titolo: titoliA[a], artista: artistaA[a])
listaCanzoni.append(voce)
print("Tot: \(a)--Nome: \(listaCanzoni[a].nomeTesto)")
}
}
Тем не менее, если вам нужно объединить два массива (и я рекомендую вам этого не делать; просто храните их как один массив структур), лучшим инструментом будет следующее:
let listaCanzoni = zip(titoliA, artistaA).map(VociMontagna.init)
Это объединяет два массива и строит их за один шаг.