Swift 2.0 : 'enumerate' is unavailable: call the 'enumerate()' method on the sequence

前端 未结 3 1894
小鲜肉
小鲜肉 2020-11-30 05:31

Just downloaded Xcode 7 Beta, and this error appeared on enumerate keyword.

for (index, string) in enumerate(mySwiftStringArray)
{

}

3条回答
  •  北海茫月
    2020-11-30 06:25

    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
    }
    

    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)
    }
    

提交回复
热议问题