我只是使用swift 2.2下载一个新的Xcode(7.3)。
它有一个警告:
不推荐使用C-style for语句,将在未来的Swift版本中删除。
如何修复此警告?
答案 0 :(得分:76)
删除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)")
}
Swift 2.2:
// new swift style works well
for i in 1...10 {
print("I'm number \(i)")
}
对于减量索引
for index in 10.stride(to: 0, by: -1) {
print(index)
}
或者您可以使用reverse()
之类的
for index in (0 ..< 10).reverse() { ... }
适用于浮动类型(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:
来自Swift3.0
,Strideable上的stride(to:by:)
方法已替换为免费功能stride(from:to:by:)
for i in stride(from: 0, to: 10, by: 1){
print(i)
}
对于Swift 3.0
中的减量索引,您可以使用reversed()
for i in (0 ..< 5).reversed() {
print(i) // 4,3,2,1,0
}
除了for each
和stride()
之外,您可以使用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
中的控制流程
答案 1 :(得分:4)
对于这种“for”循环:
for var i = 10; i >= 0; --i {
print(i)
}
你可以写:
for i in (0...10).reverse() {
print(i)
}
答案 2 :(得分:2)
我在这段代码中遇到了同样的错误:
for (var i = 1; i != video.getAll().count; i++) {
print("show number \(i)")
}
当你尝试使用Xcode修复它时,你没有运气......所以你需要使用新的swift风格(for in循环):
for i in 1...video.getAll().count {
print("show number \(i)")
}
答案 3 :(得分:0)
块引用
改为使用
if(myarr.count)
{
for i in 1...myarr?.count {
print(" number is \(i)")
}
}