我只是用swift 2.2下载了一个新的Xcode(7.3)。它有一个警告:不推荐使用C风格的statement,并且会在以后的Swift版本中将其删除。如何解决此警告?
3 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
删除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
,stride(to:by:)
Strideable上的方法已替换为自由函数,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 = 0while i < 10 { i += 1 print(i)}
Repeat-While Loop:
var a = 0repeat { a += 1 print(a)} while a < 10
在《 Swift编程语言指南》中查看控制流
慕勒3428872
TA贡献1848条经验 获得超6个赞
对于这种“ for”循环:
for var i = 10; i >= 0; --i { print(i)}
你可以写:
for i in (0...10).reverse() { print(i)}
慕田峪9158850
TA贡献1794条经验 获得超7个赞
我收到与此代码相同的错误:
for (var i = 1; i != video.getAll().count; i++) { print("show number \(i)")}
当您尝试使用Xcode修复它时,您会遇到运气...因此,您需要使用新的swift样式(for in loop):
for i in 1...video.getAll().count { print("show number \(i)")}
- 3 回答
- 0 关注
- 592 浏览
添加回答
举报
0/150
提交
取消