Itérer à travers un Ssortingng Swift 2.0

J’essaie de faire un code très simple dans les terrains de jeux Swift.

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

Cependant, je reçois toujours une erreur sur la ligne 3.

‘Ssortingng’ n’a pas de membre nommé ‘Generator’

Des idées sur pourquoi cela ne fonctionne pas? Note: Je travaille dans Xcode 7, avec Swift 2.0 ( Ssortingngs and Characters).

À partir de Swift 2, Ssortingng n’est pas conforme à SequenceType . Cependant, vous pouvez utiliser la propriété characters sur Ssortingng . characters retournent un Ssortingng.CharacterView conforme à SequenceType et peuvent être parcourus avec une boucle for :

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

Vous pouvez également append une extension à Ssortingng pour la rendre conforme à SequenceType :

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

Cependant, je suis sûr qu’Apple avait une raison de supprimer la conformité de Ssortingng à SequenceType et que la première option semble être le meilleur choix. C’est intéressant d’explorer ce qui est possible cependant.

Ssortingng n’est plus conforme à SequenceType . Cependant, vous pouvez accéder à la propriété des characters de cette manière:

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

Notez que la documentation n’a pas encore été mise à jour.

Swift 3.0.1

Utilisez la propriété indices de la propriété characters pour accéder à tous les indices des caractères individuels d’une chaîne.

 let greeting = "Guten Tag!" for index in greeting.characters.indices { print("\(greeting[index]) ", terminator: "") } // Prints "G uten T ag ! " 

visitez https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/SsortingngsAndCharacters.html

Swift 4

Boucle Forin :

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

exemple de carte :

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

pour chaque exemple:

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