我有一些代码可以更新按钮的图像,但是,当我尝试运行代码时,我一直会收到错误:
'致命错误:数组索引超出范围'
我试图运行的代码如下:
func updateButtonImages() {
let buttons = total.map { buttonList[$0] }
**buttons[0].setImage(UIImage(named: "p2"), forState: .Normal)**
var time = dispatch_time(DISPATCH_TIME_NOW, 0)
for (priorButton, currentButton) in zip(buttons[0..<buttons.count - 1], buttons[1..<buttons.count]) {
time = dispatch_time(time, Int64(speed * Double(NSEC_PER_SEC)))
dispatch_after(time, dispatch_get_main_queue()) {
priorButton.setImage(UIImage(named: "p2"), forState: .Normal)
currentButton.setImage(UIImage(named: "p1"), forState: .Normal)
}
}
time = dispatch_time(time, Int64(speed * Double(NSEC_PER_SEC)))
dispatch_after(time, dispatch_get_main_queue()) {
buttons.last?.setImage(UIImage(named: "p1"), forState: .Normal)
//replayButton.enabled = true
self.buttonList.forEach { $0.enabled = true }
}
}
我有什么办法可以解决这个问题吗?
提前感谢。
答案 0 :(得分:1)
此错误:致命错误:数组索引超出范围包含并回答。
您尝试使用不在此数组范围内的项目。
示例:
var items = [1, 2]
items[2] // error only items are available at indexes 0 and 1
所以在你的代码中检查 buttonList 数组。