【问题标题】:How to use for loop to create Int array in Swift 3如何使用 for 循环在 Swift 3 中创建 Int 数组
【发布时间】:2017-07-30 05:51:18
【问题描述】:

我知道这是一个非常基本的问题,

但我尝试了很多方法,并且总是显示:

“致命错误:数组索引超出范围”

我要创建一个0~100的int数组

e.q. var integerArray = [0,1,2,3,.....,100]

我正在尝试

var integerArray = [Int]()
for i in 0 ... 100{
integerArray[i] = i
}

还有出现:fatal error: Array index out of range

感谢您的帮助

完整代码:

class AlertViewController: UIViewController,UIPickerViewDelegate, UIPickerViewDataSource {

@IBOutlet weak var integerPickerView: UIPickerView!
@IBOutlet weak var decimalPickerView: UIPickerView!

var integerArray = [Int]()
var decimalArray = [Int]()

override func viewDidLoad() {
    super.viewDidLoad()
    giveArrayNumber()
    integerPickerView.delegate = self
    decimalPickerView.delegate = self
    integerPickerView.dataSource = self
    decimalPickerView.dataSource = self
}

func giveArrayNumber(){
    for i in 0 ... 100{
        integerArray[i] = i
    }
}

【问题讨论】:

  • 阅读documentation 有帮助:"您可以通过调用数组的 append(_:) 方法将新项目添加到数组的末尾:"“您不能使用下标语法将新项目附加到数组的末尾。”

标签: ios arrays swift for-loop swift3


【解决方案1】:

您的数组为空,并且您正在下标分配值,这就是您遇到“数组索引超出范围”崩溃的原因。如果你想和for loop一起去。

var integerArray = [Int]()
for i in 0...100 {
    integerArray.append(i)
}

但您可以像这样简单地创建数组而不需要使用for loop

var integerArray = [Int](0...100)

【讨论】:

  • @JimmyHo 欢迎朋友:)
【解决方案2】:

不使用循环:

var integerArray = Array(0...100)

不使用循环 2:

var integerArray = (0...100).map{ $0 }

不使用循环 3:

var integerArray = [Int](0...100)

使用循环(最好不要使用):

var integerArray = [Int]()
for i in 0...100 { integerArray.append(i) }

【讨论】:

    【解决方案3】:

    因为你的数组是空的,所以“integerArray[i](例如i是1)”不存在。

    你必须这样写:

     func giveArrayNumber() {
        for i in 0 ... 100{
           integerArray.append(i)
        }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-11
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      相关资源
      最近更新 更多