@IBAction func endTurn(sender: UIButton) {
let index: Int = Int (arc4random_uniform(UInt32(coins.count)))
var i = Int(arc4random_uniform((3)))
for i; i < 3; i++ {
coins[i].hidden = true
coins.removeAtIndex(i)
println(i)
}
}
我有 21 个硬币。它是按钮数组(@IBOutlet var coins:[UIButton]!)。当我按下“endTurn”时,硬币被隐藏了。但是当我有 3 个或更少的硬币时,我会收到 fatal error (行:coins[i].hidden = true)。 我需要做什么? 谢谢...
最佳答案
在遍历数组时从数组中删除是一个很大的禁忌,并且可能没有按照您的意愿进行。
var i = 0
var arr = ["1", "2", "3", "4", "5"]
for i; i < 3; i++ {
arr.removeAtIndex(i)
}
print(arr)
打印 ["2", "4"] 因为如果你看一下代码,你会在索引 0 处删除,所以你的数组现在是 ["2", "3", "4"],然后你递增 i,并在索引 1 处删除。由于数组移位,索引1 是“3”,你跳过了“2”。
将此信息与其他答案结合使用
关于ios - Swift 按钮隐藏 fatal error : Array index out of range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31727256/