致命错误:Swift Xcode6中的数组索引超出范围
我的函数中不断出现此错误 我正在尝试读取数组answerRecord中的值。我使用一个全局var arrayCount,它跟踪我当前指向的索引致命错误:Swift Xcode6中的数组索引超出范围,swift,xcode6.1,Swift,Xcode6.1,我的函数中不断出现此错误 我正在尝试读取数组answerRecord中的值。我使用一个全局var arrayCount,它跟踪我当前指向的索引 func buttonColourControl(){ switch answerRecord[arrayCount]{ case1: xxxxxxx 我在前面的func中做了一个println,它为var arrayCount返回一个int 1的值 因此arrayCount不是空的。因此,它应该能够将数组解释为: *假设arrayCo
func buttonColourControl(){
switch answerRecord[arrayCount]{
case1: xxxxxxx
我在前面的func中做了一个println,它为var arrayCount返回一个int 1的值
因此arrayCount不是空的。因此,它应该能够将数组解释为:
*假设arrayCount现在为1
应答记录[arrayCount]应解释为应答记录[1]
如果我错了,请纠正我
@IBAction func nextButtonClicked(sender: UIButton) {
arrayCount = ++arrayCount
question.text = spouseQuesion[arrayCount]
controlBackNextButton()
answer1Label.text = spouseAnswer1[arrayCount]
answer2Label.text = spouseAnswer2[arrayCount]
answer3Label.text = spouseAnswer3[arrayCount]
println(arrayCount)
buttonColourControl()
}
假设有一个数组,其中有一个对象:
let arr = ["hello"]
该数组中唯一有效的索引是0<代码>arr[0]是合法的<代码>arr[1]不可用。数组有1个元素,但其索引号为0
这对于任何数组都是正确的。每个数组都包含一定数量的元素。它可能是0个元素,在这种情况下,没有索引是合法的。它可能是3个元素,在这种情况下,您可以通过索引号0、1和2引用数组的元素。等等这就是全部。这些就是规则。您不能使用任何其他索引号,否则将崩溃
因此,错误信息只是告诉您正在犯错误。你有一个数组
answerRecord
,它有一些元素-我不知道有多少,这并不重要。然后使用表达式answerRecord[arrayCount]
,而arrayCount
的值超出了我刚才解释的范围。你只需要知道这些。错误消息告诉您程序中的错误。现在您可以修复它。哪一行发生错误?在func buttonColourControl()内的switch语句中,此错误意味着当您说answerRecord[arrayCount]
时,arrayCount
的值与answerRecord
的任何索引号都不对应。在这里不能只使用任何值。它必须介于0和数组大小之间。数组本身的计数太大。arrayCount
的值来自哪里?回答记录中到底有什么?嗨,马特,我知道我的错误在哪里。谢谢你的清楚解释。我先读取下一个元素,然后再向其中添加值。现在我想做一个IF语句来检查arrayRecord[arrayCount]是否为空,但是我得到了另一个错误。如果应答记录[arrayCount]!=零->这意味着什么?