I am trying to do a very simple piece of code in Swift playgrounds.
var word = "Zebra" for i in word { print(i) }
However, I always get an error on line 3.
'String' does not have a member named 'Generator'
Any ideas on why this doesn't work? Note: I am working in Xcode 7, with Swift 2.0 (Strings and Characters).
As of Swift 2, String
doesn't conform to SequenceType
. However, you can use the characters
property on String
. characters
returns a String.CharacterView
which conforms to SequenceType
and so can be iterated through with a for
loop:
let word = "Zebra" for i in word.characters { print(i) }
Alternatively, you could add an extension to String
to make it conform to SequenceType
:
extension String: SequenceType {} // Now you can use String in for loop again. for i in "Zebra" { print(i) }
Although, I'm sure Apple had a reason for removing String
's conformance to SequenceType
and so the first option seems like the better choice. It's interesting to explore what's possible though.
String
doesn't conform to SequenceType
anymore. However you can access the characters
property of it this way:
var word = "Zebra" for i in word.characters { print(i) }
Note that the documentation hasn't been updated yet.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With