#warning: C-style for statement is deprecated and will be removed in a future version of Swift [duplicate]
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}
Other then for each
and stride()
, you can use While Loops
var i = 0while i < 10 { i += 1 print(i)}
Repeat-While Loop:
var a = 0repeat { a += 1 print(a)} while a < 10
check out Control flows in The Swift Programming Language Guide
For this kind "for" loop:
for var i = 10; i >= 0; --i { print(i)}
You can write:
for i in (0...10).reverse() { print(i)}
I got the same error with this code:
for (var i = 1; i != video.getAll().count; i++) { print("show number \(i)")}
When you try to fix it with Xcode you get no luck... So you need to use the new swift style (for in loop):
for i in 1...video.getAll().count { print("show number \(i)")}