【问题标题】:Swift buttons array fatal error: Array index out of rangeSwift 按钮数组致命错误:数组索引超出范围
【发布时间】:2015-07-04 13:28:05
【问题描述】:

请帮忙。我有致命错误:数组索引超出范围。 当我有 2 或 1 个硬币并且 aiTurn 需要 3 个时,我有致命错误。 我哪里做错了? 谢谢...

class ViewController: UIViewController {    
    @IBOutlet var coins: [UIButton]!
    @IBOutlet weak var endTurn: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

@IBAction func endTurn(sender: UIButton) {       
     aiTurn(sender)
    }

    func aiTurn(sender: UIButton!) {
        var i = Int(arc4random_uniform(3))
            var btnsendtag:UIButton = sender
            if btnsendtag.tag == 22 {
                   var usignedRandomNumber : Int = Int(arc4random_uniform(UInt32(coins!.count)))
                    var randomNumber = Int(usignedRandomNumber)
                    for i; i >= 0; --i {
                    self.coins?[i].hidden = true
                        self.coins?.removeAtIndex(i)
                        var dol = coins.count - i
                        println(dol)
}
}
}
}

【问题讨论】:

  • 您的代码似乎不完整(缺少大括号)并且格式错误。此外,您没有提供足够的信息:错误发生在哪里?你有几个coins
  • 21 个硬币。这一行是致命错误:self.coins?[i].hidden = true

标签: arrays swift button fatal-error


【解决方案1】:

这行没有意义:

for i; i >= 0; --i {

如果您要使用这种形式的 for 循环,您需要将值初始化为:

for i = Int(arc4random_uniform(3)); i >= 0; --i

【讨论】:

  • self.coins?[i].hidden = true
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多