Just downloaded Xcode 7 Beta, and this error appeared on enumerate
keyword.
for (index, string) in enumerate(mySwiftStringArray)
{
}
I know this is a old thread but I've just been messing around with Swift 2.0 and Playgrounds and I came across the same problem I thought I'd share a solution which uses the enumerate() method for a String
// This line works in Swift 1.2
// for (idx, character) in enumerate("A random string, it has a comma.")
// Swift 2.x
let count = inputString.characters
for (idx, character) in count.enumerate() where character == "," {
// Do something with idx
}
Hope this helps
Thanks Kai
There was an update for Swift 2 on using enumerate().
Instead of enumerate(...)
, people should use
... .enumerate()
The reason is that many global functions have been replaced by protocol extension methods and they will get an enumerate error.
Hope this helps. All the best. n
Many global functions have been replaced by protocol extension methods,
a new feature of Swift 2, so enumerate()
is now an extension method
for SequenceType
:
extension SequenceType {
func enumerate() -> EnumerateSequence<Self>
}
and used as
let mySwiftStringArray = [ "foo", "bar" ]
for (index, string) in mySwiftStringArray.enumerate() {
print(string)
}
And String
does no longer conform to SequenceType
, you have to
use the characters
property to get the collection of Unicode
characters. Also, count()
is a protocol extension method of
CollectionType
instead of a global function:
let myString = "foo"
let stringLength = myString.characters.count
print(stringLength)
Update for Swift 3: enumerate()
has been renamed to enumerated()
:
let mySwiftStringArray = [ "foo", "bar" ]
for (index, string) in mySwiftStringArray.enumerated() {
print(string)
}