我正在做一个井字棋项目,但它不工作。我收到的问题是let space = sender.tag
。当我点击一个tic tac toe盒来测试它时,会发生什么情况,它会给我“exc_bad_inst”。谁能帮我?运行我的iOS应用时出现EXC_BAD_INST错误
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var buttonOne: UIButton!
@IBOutlet weak var buttonTwo: UIButton!
@IBOutlet weak var buttonThree: UIButton!
@IBOutlet weak var buttonFour: UIButton!
@IBOutlet weak var buttonFive: UIButton!
@IBOutlet weak var buttonSix: UIButton!
@IBOutlet weak var buttonSeven: UIButton!
@IBOutlet weak var buttonEight: UIButton!
@IBOutlet weak var buttonNine: UIButton!
@IBOutlet weak var gameResult: UILabel!
var gameState = ["","","",
"","","",
"","",""
]
let winningCombos = [[0, 1, 2], [3, 4, 5], [6, 7, 8], //horizontal
[0, 3, 6], [1, 4, 7], [2, 5, 8], //vertical
[0, 4, 8], [2, 4, 6]] //diagonals
var gameOver = false
var turnCount = 0
var currentPlayer: String!
func pickFirstPlayer() -> String {
if arc4random_uniform(2) == 0 {
currentPlayer = "o"
} else {
currentPlayer = "x"
}
return currentPlayer
}
func toggleNextPlayer() {
if currentPlayer == "o" {
currentPlayer = "x"
} else {
currentPlayer = "o"
}
}
@IBAction func makeMove(sender: AnyObject) {
let space = sender.tag
if (gameState[space] == "" && gameOver == false) {
let turnImage = UIImage(named: "\(self.currentPlayer).png")
sender.setImage(turnImage!, forState: .Normal)
gameState[space] = self.currentPlayer
self.toggleNextPlayer()
self.turnCount++
self.checkForWinner()
}
}
func checkForWinner() {
var winner = ""
for combo in winningCombos {
var row: [String] = []
for space in combo {
row.append(gameState[space])
}
if (row[0] == row[1] && row[1] == row[2] && row[0] != "") {
gameOver = true
winner = row[0].uppercaseString
gameResult.text = "\(winner) is the winner!"
}
}
if (turnCount == 9 && winner == "") {
gameResult.text = "It's a tie!"
gameOver = true
}
}
override func viewDidLoad() {
super.viewDidLoad()
pickFirstPlayer()
}
}
感谢您的信息,去在那 –