ios - Swift 按钮隐藏 fatal error : Array index out of range

标签 ios arrays swift hidden fatal-error

 @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/

相关文章:

ios - 如何停止 XCode 中 DerivedData 下的模块文件中的 'signature mismatch' 错误?

ios - 使用 MKNetworking 图像上传 PHP 获取内部错误 500

ios 9 - xcode 7 - SFSafariViewController - 图片上传 - 相机黑屏

arrays - Cython 中的指针数组

ios - 纯代码构建集合但不执行 UICollectionViewDelegateFlowLayout

ios - 向用户显示解析设备 token

php - 从数组中检索数据

javascript - .find() 多选器不能添加prop

ios - 从设备中删除应用程序时删除与应用程序相关的下载

ios - 在swift3中将图像缩放到更小的尺寸