嘿伙计们,我是学习迅速的初学者。在我的程序中,我有一个包含49个项目的数组,我希望通过滑动动作(从左到右,从左到右)逐个打印每个项目。但是当我到达数组的末尾时,由于数组索引范围不足,我得到fatal error
。
我尝试使用计数器变量来计算滑动并在其达到49时将其索引号设置为0,但它不起作用。我怎么能应付这个?感谢。
if swipeCounter == 49{
swipeCounter = 0
}
firstCell.text = String(numberList[swipeCounter])
secondCell.text = String(numberList[swipeCounter + 1])
thirdCell.text = String(numberList[swipeCounter + 2])
swipeCounter = ++swipeCounter
println(swipeCounter)
答案 0 :(得分:1)
可能发生错误,因为您正在检查swipeCounter的值然后再增加它。因此,即使swipeCounter
为48,也不会将其设置为0,并且尝试访问swipeCounter + 2
即50会导致崩溃。另外,我并不是在我的代码中使用硬编码长度的忠实粉丝。
我建议这样做
firstCell.text = String(numberList[swipeCounter % numberList.count])
secondCell.text = String(numberList[(swipeCounter + 1) % numberList.count])
thirdCell.text = String(numberList[(swipeCounter + 2) % numberList.count])
模数运算符应该只处理任何索引溢出,如果数组长度发生变化,用numberList.count替换49也将是一个很好的举动。
希望这有帮助!