Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

#warning: C-style for statement is deprecated and will be removed in a future version of Swift [duplicate]

I just download a new Xcode (7.3) with swift 2.2.

It has a warning:

C-style for statement is deprecated and will be removed in a future version of Swift.

How can I fix this warning?

like image 219
sony Avatar asked Mar 23 '16 08:03

sony


1 Answers

Removing for init; comparison; increment {} and also remove ++ and -- easily. and use Swift's pretty for-in loop

   // 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)")    } 

Swift 2.2:

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

For decrement index

  for index in 10.stride(to: 0, by: -1) {       print(index)   } 

Or you can use reverse() like

  for index in (0 ..< 10).reverse() { ... } 

for float type (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  }   

Swift 3.0:

From Swift3.0, The stride(to:by:) method on Strideable has been replaced with a free function, stride(from:to:by:)

for i in stride(from: 0, to: 10, by: 1){     print(i) } 

For decrement index in Swift 3.0, you can use reversed()

for i in (0 ..< 5).reversed() {     print(i) // 4,3,2,1,0 } 

enter image description here


Other then for each and stride(), you can use While Loops

var i = 0 while i < 10 {     i += 1     print(i) } 

Repeat-While Loop:

var a = 0 repeat {    a += 1    print(a) } while a < 10 

check out Control flows in The Swift Programming Language Guide

like image 135
EI Captain v2.0 Avatar answered Oct 01 '22 01:10

EI Captain v2.0