我是編程新手,在Xcode中遇到了Swift非常令人沮喪的問題 - 調試器阻止了我在模擬器中運行我的應用程序。當我點擊「運行」時,我會看到一個綠色欄,其中包含一條消息,無論我告訴調試器「繼續」多少次,模擬器仍爲黑色,綠色欄不會從該特定代碼行移動。Swift Debugger:如何禁用它以運行應用程序?
在我的應用程序委託的「類的AppDelegate」行我得到的消息:「線程1:信號SIGABRT」
什麼是這裏的調試器的意義呢?它似乎沒有幫助,只是阻止我看到我的代碼運行。我怎樣才能解決這個問題? 我的代碼:
//Initializing all imgs as variables:
@IBOutlet var circle1: UIImageView!
@IBOutlet var circle2: UIImageView!
@IBOutlet var circle3: UIImageView!
@IBOutlet var circle4: UIImageView!
@IBOutlet var circle5: UIImageView!
@IBOutlet var circle6: UIImageView!
@IBOutlet var circle7: UIImageView!
@IBOutlet var circle8: UIImageView!
@IBOutlet var circle9: UIImageView!
@IBOutlet var circleBtn1: UIButton!
@IBOutlet var circleBtn2: UIButton!
@IBOutlet var circleBtn3: UIButton!
@IBOutlet var circleBtn4: UIButton!
@IBOutlet var circleBtn5: UIButton!
@IBOutlet var circleBtn6: UIButton!
@IBOutlet var circleBtn7: UIButton!
@IBOutlet var circleBtn8: UIButton!
@IBOutlet var circleBtn9: UIButton!
@IBOutlet var resetBtn: UIButton!
@IBOutlet var ResultsLabel: UILabel!
//Creating variables:
var plays = Dictionary<Int,Int>()
var done = false
var aiDeciding = false
//Function that says what to do if a UIButton is clicked:
@IBAction func UIbuttonClicked(sender:UIButton) {
ResultsLabel.hidden = true
if !plays[sender.tag] && !aiDeciding && !done {
setImgforCircle(sender.tag, player:1)
}
//Executing these functions:
checkforWin()
aiTurn()
}
//Function that says sets an X or O in the proper circle depending on player:
func setImgforCircle(spot:Int, player:Int) {
var playerMark = player == 1 ? "Red_x" : "Red_o"
plays[spot] = player
switch spot {
case 1:
circle1.image = UIImage(named: playerMark)
case 2:
circle2.image = UIImage(named: playerMark)
case 3:
circle3.image = UIImage(named: playerMark)
case 4:
circle4.image = UIImage(named: playerMark)
case 5:
circle5.image = UIImage(named: playerMark)
case 6:
circle6.image = UIImage(named: playerMark)
case 7:
circle7.image = UIImage(named: playerMark)
case 8:
circle8.image = UIImage(named: playerMark)
case 9:
circle9.image = UIImage(named: playerMark)
default:
circle2.image = UIImage(named: playerMark)
}
}
//Function that sees if certain paths of circles have the same mark
func checkforWin() {
var whoWon = ["Lost":0, "Won":1]
for (key,value) in whoWon {
if ((plays[1] == value && plays[2] == value && plays[3] == value) || //across top row
(plays[4] == value && plays[5] == value && plays[6] == value) || //across middle row
(plays[7] == value && plays[8] == value && plays[9] == value) || //across bottom row
(plays[1] == value && plays[4] == value && plays[7] == value) || //down left column
(plays[2] == value && plays[5] == value && plays[8] == value) || //down middle column
(plays[3] == value && plays[6] == value && plays[9] == value) || //down right column
(plays[1] == value && plays[5] == value && plays[9] == value) || //diagonal going right
(plays[7] == value && plays[5] == value && plays[3] == value)) { //diagonal going left
ResultsLabel.hidden = false
ResultsLabel.text = "You \(key)!"
done = true
}
}
}
func aiTurn() {
}
func reset() {
plays = [:]
circle1.image = nil
circle2.image = nil
circle3.image = nil
circle4.image = nil
circle5.image = nil
circle6.image = nil
circle7.image = nil
circle8.image = nil
circle9.image = nil
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
「帶消息的綠色欄」?什麼信息?並且它很可能是您的代碼崩潰,因此無法移動 –
在我的應用程序委託中的「class AppDelegate」行中,我收到消息:「線程1:信號SIGABRT」 – skyguy
因此您的應用程序崩潰。現在你需要學習如何使用調試器來修復它 –