Swift 2.0 : 'enumerate' 不可用:在序列上调用 'enumerate()' 方法
Swift 2.0 : 'enumerate' is unavailable: call the 'enumerate()' method on the sequence
刚刚下载了 Xcode 7 Beta,这个错误出现在 enumerate
关键字上。
for (index, string) in enumerate(mySwiftStringArray)
{
}
谁能帮我解决这个问题?
此外,count()
似乎不再适用于计算 String
的长度。
let stringLength = count(myString)
在上面一行,编译器说:
'count' is unavailable: access the 'count' property on the collection.
Apple 是否发布了 Swift 2.0 的任何编程指南?
许多全局函数已被协议扩展方法取代,
Swift2的一个新特性,所以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.0 和 Playgrounds,我遇到了同样的问题我想我会分享一个使用 enumerate() 的解决方案字符串的方法
// 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
}
希望对您有所帮助
谢谢
凯
Swift 2 有关于使用 enumerate() 的更新。
而不是enumerate(...)
,人们应该使用
....enumerate()
原因是很多全局函数被协议扩展方法替代,会出现枚举错误
希望这对您有所帮助。
祝一切顺利。
n
刚刚下载了 Xcode 7 Beta,这个错误出现在 enumerate
关键字上。
for (index, string) in enumerate(mySwiftStringArray)
{
}
谁能帮我解决这个问题?
此外,count()
似乎不再适用于计算 String
的长度。
let stringLength = count(myString)
在上面一行,编译器说:
'count' is unavailable: access the 'count' property on the collection.
Apple 是否发布了 Swift 2.0 的任何编程指南?
许多全局函数已被协议扩展方法取代,
Swift2的一个新特性,所以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.0 和 Playgrounds,我遇到了同样的问题我想我会分享一个使用 enumerate() 的解决方案字符串的方法
// 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
}
希望对您有所帮助
谢谢 凯
Swift 2 有关于使用 enumerate() 的更新。
而不是enumerate(...)
,人们应该使用
....enumerate()
原因是很多全局函数被协议扩展方法替代,会出现枚举错误
希望这对您有所帮助。 祝一切顺利。 n