Objective-C循环到Swift 3

chr*_*low 1 for-loop objective-c swift

将Objective-C for-loop转换为Swift 3的最好和最干净的方法是什么?什么是最佳做法?我应该使用while循环吗?

NSInteger pageHeight = 792;
NSInteger pageWidth = 612;

for (int page=0; pageHeight * page < scrollView.frame.size.height; page++) {
    // execute some code
}
Run Code Online (Sandbox Code Playgroud)

我尝试过这样的事情

for i in pageHeight * i < scrollView.frame.size.height {
    // execute some code
}
Run Code Online (Sandbox Code Playgroud)

但我无法重复使用变量i,因为它无法使用.编译器给出错误:未解析的标识符'i'.

编辑:我问这个问题的原因之一是因为我想明确知道最佳实践是什么,并避免在循环代码之前创建一个额外的变量.

Leo*_*bus 6

你应该使用while循环:

let pageHeight = 792
let pageWidth = 612
var page = 0
while pageHeight * page < Int(scrollView.frame.size.height) {
    // execute some code
    page += 1
}
Run Code Online (Sandbox Code Playgroud)

  • @KaraBenNemsi此答案中没有比原始OC代码更多的变量. (3认同)