web-dev-qa-db-ja.com

forループを使用してInt配列をSwift 3に作成する方法

これは非常に基本的な質問であることを知っています。

しかし、私はたくさんの方法を試し、常に示しています:

「致命的エラー:配列のインデックスが範囲外です」

0〜100の整数配列を作成したい

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

そして私は

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

も表示されます:致命的なエラー:配列のインデックスが範囲外です

手伝ってくれてありがとう

完全なコード:

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
    }
}
6
JimmyHo

配列が空で、値を割り当てるために添え字を付けているため、「配列のインデックスが範囲外です」というクラッシュが発生しています。 for loopを使いたい場合は、.

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

しかし、その代わりに、for loopを使用する必要なく、このように配列を作成できます。

var integerArray = [Int](0...100)
28
Nirav D

配列が空なので、「integerArray[i](ここでiは1など) "は存在しません。

このようなものを書く必要があります:

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