Donc, j'ai un for-loop qui ressemble à ça :
for var i = 0; i < results.count ; i += 1 {
if (results[i] < 5) {
results.removeAtIndex(i)
i -= 1
}
}
Ça marchait avant. Mais quand je l'ai changé pour la syntaxe préférée de Swift 3.0 :
for var i in 0..<results.count {
if (results[i] < 5) {
results.removeAtIndex(i)
i -= 1
}
}
J'obtiens une exception IOOBE parce qu'il ne revérifie pas le compte et continue jusqu'à ce que l'objet original soit atteint. results.count
.
Comment puis-je réparer cela ? Cela fonctionne maintenant, mais je ne veux pas avoir de problèmes à l'avenir.
0 votes
Ce code ne se plaint pas pour var i in 0..<results.count { if (results[i] < 5) { results.removeAtIndex(i) i -= 1 } }
0 votes
Je ne me souviens pas avoir eu un problème avec cette boucle pendant les 25 dernières années.