web-dev-qa-db-de.com

Durch einen String iterieren Swift 2.0

Ich versuche, einen sehr einfachen Code auf Swift Spielplätzen zu schreiben.

var Word = "Zebra"

for i in Word {
  print(i)
}

In Zeile 3 erhalte ich jedoch immer eine Fehlermeldung.

'String' hat kein Mitglied namens 'Generator'

Irgendwelche Ideen, warum das nicht funktioniert? Hinweis: Ich arbeite in Xcode 7 mit Swift 2.0 ( Strings and Characters).

45
Aaron

Ab Swift 2 entspricht String nicht SequenceType. Sie können jedoch die Eigenschaft characters für String. characters gibt ein String.CharacterView was SequenceType entspricht und so mit einer for Schleife durchlaufen werden kann:

let Word = "Zebra"

for i in Word.characters {
    print(i)
}

Alternativ können Sie eine Erweiterung zu String hinzufügen, um sie an SequenceType anzupassen:

extension String: SequenceType {}

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

Obwohl ich mir sicher bin, dass Apple) einen Grund hatte, die Konformität von String mit SequenceType zu entfernen, scheint die erste Option die bessere Wahl zu sein. Es ist interessant zu erkunden was ist aber möglich.

78
ABakerSmith

String stimmt nicht mehr mit SequenceType überein. Sie können jedoch folgendermaßen auf die Eigenschaft characters zugreifen:

var Word = "Zebra"

for i in Word.characters {
    print(i)
}

Beachten Sie, dass die Dokumentation noch nicht aktualisiert wurde.

9
lchamp

Schnell 4

Forin loop:

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

map example:

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

für jedes Beispiel:

let Word = "Swift 4"
Word.forEach({ print($0) })
2
Robert

Swift 3.0.1

Verwenden Sie die Eigenschaft indices der Eigenschaft characters, um auf alle indices einzelnen Zeichen in einer Zeichenfolge zuzugreifen.

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

besuchen Sie https://developer.Apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html

2
Hamed