Queda de RemoveAtIndex da matriz rápida
Eu tenho uma matriz de letras e quero combinar os caracteres com as letras e, em seguida, fazer algo com essa letra (nesse caso, torná-la amarela) e, em seguida, remover esse caractere correspondente da matriz de caracteres.
Se eu tiver umword1
como "recrutamento" especialLetters
como "ment"removeAtIndex
funciona bem, mas no exemplo abaixo, que inclui 2 s em [ness], recebo esta falha:
erro fatal: índice da matriz fora do intervalo
Ler outras postagens aqui sugere que é perigoso remover itens de uma matriz quando em uso, mas como é que funciona bem com algumas palavras e outras não? Eu pensei que enumerar a matriz só daria a cada letra um índice? E alguma sugestão sobre como corrigi-lo para que funcione para todos os tipos de caracteres?
var letters = Array(word1) // [r,a,n,d,o,m,n,e,s,s]
var characters = Array(specialLetters) // [n,e,s,s]
// delete the special letters
for (index, element) in enumerate(characters) {
if letter == element {
tile.letterLabel.textColor = UIColor.yellowColor()
// remove that character from the array so can't be matched twice
characters.removeAtIndex(index)
}
}