一行中连续的声明必须用';'分隔在 for 循环中,即使已经包含在内
Consecutive declarations on a line must be separated by ';' in for loop even though already included
代码如下:
import UIKit
class ViewController: UIViewController, UITableViewDelegate {
@IBAction func sliderMoved(sender: UISlider) {
var sliderValue = Int(sender.value)
println(sliderValue)
}
@IBOutlet var sliderValue: UISlider!
var arr:[Int] = []
for index in 0...21 {
arr.append(index)
}
println(arr)
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 20
}
/*
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
cell.textLabel?.text = sliderValue.value * arr[indexPath.row]
}
*/
}
它给我第 3 行的错误。
**我不得不删除一些代码,堆栈溢出不喜欢那么多代码。我只删除了 viewDidLoad 和 didReceiveMemoryWarning 代码。
这是一个非常简单的修复方法:您必须在 ++
运算符和左括号之间添加一个空格:
for var i = 0; i < 21; i++ {
^
没有它,我认为编译器会尝试将 ++{
视为运算符。
用递增数字初始化数组的另一种方法是:
var arr: [Int] = (0..<21).map {[=11=]}
更新
代码必须放在方法内部 - 您不能在同一级别的属性中执行代码。我建议使用我的回答中描述的替代方法初始化 属性 内联,这应该有效。
如果你仍然想使用内联初始化,但是你有更复杂的代码要执行,你也可以通过定义一个闭包来初始化属性并立即执行它:
var arr:[Int] = {
var array = [Int]()
for index in 0...21 {
array.append(index)
}
return array
}()
我建议对 for 循环使用 swift 语法:
for i in 1..<21 {
arr.append(i)
}
代码如下:
import UIKit
class ViewController: UIViewController, UITableViewDelegate {
@IBAction func sliderMoved(sender: UISlider) {
var sliderValue = Int(sender.value)
println(sliderValue)
}
@IBOutlet var sliderValue: UISlider!
var arr:[Int] = []
for index in 0...21 {
arr.append(index)
}
println(arr)
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 20
}
/*
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
cell.textLabel?.text = sliderValue.value * arr[indexPath.row]
}
*/
}
它给我第 3 行的错误。
**我不得不删除一些代码,堆栈溢出不喜欢那么多代码。我只删除了 viewDidLoad 和 didReceiveMemoryWarning 代码。
这是一个非常简单的修复方法:您必须在 ++
运算符和左括号之间添加一个空格:
for var i = 0; i < 21; i++ {
^
没有它,我认为编译器会尝试将 ++{
视为运算符。
用递增数字初始化数组的另一种方法是:
var arr: [Int] = (0..<21).map {[=11=]}
更新
代码必须放在方法内部 - 您不能在同一级别的属性中执行代码。我建议使用我的回答中描述的替代方法初始化 属性 内联,这应该有效。
如果你仍然想使用内联初始化,但是你有更复杂的代码要执行,你也可以通过定义一个闭包来初始化属性并立即执行它:
var arr:[Int] = {
var array = [Int]()
for index in 0...21 {
array.append(index)
}
return array
}()
我建议对 for 循环使用 swift 语法:
for i in 1..<21 {
arr.append(i)
}