一尘不染

枚举不可用在序列上调用枚举方法

swift

4年前关闭。

刚刚下载了Xcode 7 Beta,并列举了此错误

错误:

枚举不可用在序列上调用枚举方法

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

阅读 207

收藏
2020-07-07

共1个答案

一尘不染

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

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

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