一尘不染

Swift 2.0:“ enumerate”不可用:在序列上调用“ enumerate()”方法

swift

刚刚下载了Xcode 7 Beta,此错误出现在enumerate关键字上。

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

}

谁能帮我克服这个困难?

另外,似乎count()无法再计算的长度String

let stringLength = count(myString)

在上面的行中,编译器说:

“计数”不可用:访问集合中的“计数”属性。

Apple是否已发布任何Swift 2.0编程指南?


阅读 233

收藏
2020-07-07

共1个答案

一尘不染

许多全局函数已被 协议扩展方法 取代,这是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)
}
2020-07-07