#warning:不推荐使用C-style for语句,将在未来的Swift版本中删除

son*_*ony 30 objective-c ios swift swift2.2

我只是用swift 2.2下载一个新的Xcode(7.3).

它有一个警告:

不推荐使用C-style for语句,将在未来的Swift版本中删除.

我该如何修复此警告?

EI *_*2.0 78

删除for init; comparison; increment {},也删除++,--轻松.并使用Swift的漂亮for-in循环

   // WARNING: C-style for statement is deprecated and will be removed in a future version of Swift
   for var i = 1; i <= 10; i += 1 {
      print("I'm number \(i)")
   }
Run Code Online (Sandbox Code Playgroud)

Swift 2.2:

   // new swift style works well
   for i in 1...10 {
      print("I'm number \(i)")
   }  
Run Code Online (Sandbox Code Playgroud)

对于减量指数

  for index in 10.stride(to: 0, by: -1) {
      print(index)
  }
Run Code Online (Sandbox Code Playgroud)

或者你可以使用reverse()喜欢

  for index in (0 ..< 10).reverse() { ... }
Run Code Online (Sandbox Code Playgroud)

用于浮动类型 (there is no need to define any types to index)

 for index in 0.stride(to: 0.6, by: 0.1) {
     print(index)  //0.0 ,0.1, 0.2,0.3,0.4,0.5
 }  
Run Code Online (Sandbox Code Playgroud)

Swift 3.0:

Swift3.0,stride(to:by:)Strideable上的方法已被免费功能所取代,stride(from:to:by:)

for i in stride(from: 0, to: 10, by: 1){
    print(i)
}
Run Code Online (Sandbox Code Playgroud)

对于减量索引Swift 3.0,您可以使用reversed()

for i in (0 ..< 5).reversed() {
    print(i) // 4,3,2,1,0
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


其他则for eachstride(),则可以使用While Loops

var i = 0
while i < 10 {
    i += 1
    print(i)
}
Run Code Online (Sandbox Code Playgroud)

Repeat-While Loop:

var a = 0
repeat {
   a += 1
   print(a)
} while a < 10
Run Code Online (Sandbox Code Playgroud)

Swift编程语言指南中查看控制流程

  • @sony:请参阅[此问答](http://stackoverflow.com/a/36167115/4573247)以获取C风格循环的替代方案,该循环允许零长度的数组(无需额外的if语句). (2认同)