This question already has answers here:
Swift 2.0 : 'enumerate' is unavailable: call the 'enumerate()' method on the sequence

(3 个回答)


5年前关闭。




刚刚下载了 Xcode 7 Beta,并在 enumerate 上出现了这个错误

错误:


 func layoutSpecialKeysRow(row: [Key], keyWidth: CGFloat, gapWidth: CGFloat, leftSideRatio: CGFloat, rightSideRatio: CGFloat, micButtonRatio: CGFloat, isLandscape: Bool, frame: CGRect) -> [CGRect] {
    var frames = [CGRect]()

    var keysBeforeSpace = 0
    var keysAfterSpace = 0
    var reachedSpace = false
    for _k, key) in enumerate(row) {
        if key.type == Key.KeyType.Space {
            reachedSpace = true
        }
        else {
            if !reachedSpace {
                keysBeforeSpace += 1
            }
            else {
                keysAfterSpace += 1
            }
        }
    }

最佳答案

在 Swift 2 中, enumerate 不再是一个全局函数,它是 SequenceType 的扩展。

直接在序列上调用它来枚举,如下所示:

for (index, key) in row.enumerate() {
    // ...
}

关于swift - enumerate 不可用在序列上调用 enumerate 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31230761/

10-13 03:59