Swift 2.0:'枚举'不可用:调用序列上的'enumerate()'方法

刚刚下载的Xcode 7testing版,这个错误出现在enumerate关键字。

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

任何人都可以帮我克服这个?

另外,似乎count()不再用于计算String长度。

 let stringLength = count(myString) 

在上面一行,编译器说:

“count”不可用:访问集合上的“count”属性。

苹果是否已经发布了Swift 2.0的编程指南?

许多全局函数已经被Swift 2的新特性协议扩展方法所取代,所以enumerate()现在是SequenceType的扩展方法:

 extension SequenceType { func enumerate() -> EnumerateSequence<Self> } 

并用作

 let mySwiftStringArray = [ "foo", "bar" ] for (index, string) in mySwiftStringArray.enumerate() { print(string) } 

而且String不再符合SequenceType ,你必须使用characters属性来获取Unicode字符的集合。 另外, count()CollectionType的协议扩展方法,而不是全局函数:

 let myString = "foo" let stringLength = myString.characters.count print(stringLength) 

更新Swift 3: enumerate()已经重命名为enumerated()

 let mySwiftStringArray = [ "foo", "bar" ] for (index, string) in mySwiftStringArray.enumerated() { print(string) } 

有关使用枚举()的Swift 2的更新。

人们应该使用而不是enumerate(...)

.enumerate()

原因是许多全局函数被协议扩展方法所取代,并且会得到枚举错误。

希望这可以帮助。 祝一切顺利。 ñ

我知道这是一个古老的线程,但我刚刚搞了Swift 2.0和Playgrounds,我遇到了同样的问题,我想我会分享一个解决scheme,使用enumerate()方法的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 } 

希望这可以帮助

谢谢凯