tutorial basics swift swift-playground swift2 xcode7

basics - xcode swift 4



Iterar a través de un String Swift 2.0 (4)

Estoy tratando de hacer un código muy simple en los parques infantiles de Swift.

var word = "Zebra" for i in word { print(i) }

Sin embargo, siempre recibo un error en la línea 3.

''String'' no tiene un miembro llamado ''Generator''

¿Alguna idea de por qué esto no funciona? Nota: Estoy trabajando en Xcode 7, con Swift 2.0 ( cadenas y caracteres).


Swift 4

Forin loop:

let greeting = "Guten Tag!" for index in greeting.characters.indices { print("/(greeting[index]) ", terminator: "") } // Prints "G u t e n T a g ! "

ejemplo de mapa :

let word = "Swift 4" for i in word { print(i) }

por cada ejemplo:

let word = "Swift 4" _ = word.map({ print($0) })


A partir de Swift 2, String no se ajusta a SequenceType . Sin embargo, puede usar la propiedad de characters en String . characters devuelven un String.CharacterView que se ajusta a SequenceType y, por lo tanto, se puede iterar con un bucle for :

let word = "Zebra" for i in word.characters { print(i) }

Alternativamente, puede agregar una extensión a String para que se ajuste a SequenceType :

extension String: SequenceType {} // Now you can use String in for loop again. for i in "Zebra" { print(i) }

Sin embargo, estoy seguro de que Apple tenía una razón para eliminar la conformidad de String con SequenceType por lo que la primera opción parece ser la mejor opción. Sin embargo, es interesante explorar lo que es posible.


String ya no se ajusta a SequenceType . Sin embargo, puede acceder a la propiedad de caracteres de esta manera:

var word = "Zebra" for i in word.characters { print(i) }

Tenga en cuenta que la documentación aún no se ha actualizado.