2015-07-05 38 views
7

刚刚下载的Xcode 7测试版的枚举法,并拿出上罗列枚举不可呼吁序列

错误此错误:

enumerate is unavailable call the enumerate method on the sequence

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

回答

13

在斯威夫特2,enumerate不一个全球性的功能,它是SequenceType的延伸。

把它直接在顺序列举如下:

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

注意:斯威夫特3,'.enumerate()现在''.enumerated()'... – Moritz