如何在swift中到达数组范围的索引结束时从头开始?

时间:2014-10-29 12:03:44

标签: arrays swift

嘿伙计们,我是学习迅速的初学者。在我的程序中,我有一个包含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)

1 个答案:

答案 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也将是一个很好的举动。

希望这有帮助!