2017-03-09 25 views
4

我知道這是一個非常基本的問題,如何使用for循環斯威夫特創造int數組3

但我嘗試很多方法,並始終顯示:

"fatal error: Array index out of range"

我想創建一個0〜100 int array

eq 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 
    } 
} 
+2

讀[文件](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html# // apple_ref/doc/uid/TP40014097-CH8-ID107)help:*「您可以通過調用數組的附加(_ :)方法將一個新項添加到數組的末尾:」*和*「您不能使用下標語法將新項目追加到數組的末尾。「* –

回答

12

你的陣列是空的,你是下標分配值這就是爲什麼你會得到「數組索引超出範圍」崩潰。如果你想用for loop那麼。

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

但是,您可以創建數組,而不需要使用for loop

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

解決!這對我很有幫助 – JimmyHo

+0

@JimmyHo歡迎隊友:) –

0

因爲你的數組爲空,因此,「integerArray[i](其中i是1例如)」不存在。

你必須寫這樣的事:

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