为什么我的应用程序在点击播放按钮时停止

why is my app stalling when the play button is tapped

import UIKit

class ViewController: UIViewController {
var timerCount = 5
var timerRunning = false
var timer = NSTimer()

func shuffle<C: MutableCollectionType where C.Index == Int>(var list: C) -> C {
    let c = count(list)
    for i in 0..<(c - 1) {
        let j = Int(arc4random_uniform(UInt32(c - i))) + i
        swap(&list[i], &list[j])
    }
    return list
}

func counting(){
    timerCount -= 1
    timerLabel.text = "\(timerCount)"
    if timerLabel.text == "0"{
        if timerLabel.text == "0"{
        timerLabel.text = ""
        self.youFailedView.image = UIImage(named: "youFailed")

        }



    }

}

var backRoundRand = arc4random_uniform(4) + 1


@IBOutlet weak var backRound: UIImageView!
@IBOutlet weak var youFailedView: UIImageView!
@IBOutlet weak var timerLabel: UILabel!
@IBOutlet weak var sign1: UIImageView!
@IBOutlet weak var sign2: UIImageView!
@IBOutlet weak var sign3: UIImageView!
@IBOutlet weak var sign4: UIImageView!
@IBOutlet weak var sign5: UIImageView!
@IBOutlet weak var color1: UIImageView!
@IBOutlet weak var color2: UIImageView!
@IBOutlet weak var color3: UIImageView!
@IBOutlet weak var color4: UIImageView!
@IBOutlet weak var color5: UIImageView!
@IBOutlet weak var blueButton: UIButton!
@IBOutlet weak var purpleButton: UIButton!
@IBOutlet weak var orangeButton: UIButton!
@IBOutlet weak var yellowButton: UIButton!
@IBOutlet weak var redButton: UIButton!

override func viewDidLoad() {
    var gameViewStillRunning = true
    var sign1RandNum = arc4random_uniform(3) + 1
         var sign2RandNum = arc4random_uniform(4) + 1
         var sign3RandNum = arc4random_uniform(4) + 1
         var sign4RandNum = arc4random_uniform(4) + 1
         var sign5RandNum = arc4random_uniform(4) + 1
    var colorArray = ["orangeBrick", "blueBrick", "yellowBrick",   "redBrick", "purpleBrick"]
    var shuffledColorArray: Array = shuffle(colorArray)
 self.color1.image = UIImage(named: shuffledColorArray[0])
self.color2.image = UIImage(named: shuffledColorArray[1])
self.color3.image = UIImage(named: shuffledColorArray[2])
self.color4.image = UIImage(named: shuffledColorArray[3])
self.color5.image = UIImage(named: shuffledColorArray[4])
    var correctAnswer1 = ""
    var correctAnswer2 = ""
    var correctAnswer3 = ""
    var correctAnswer4 = ""
    var correctAnswer5 = ""
   /*switch backRoundRand{
    case 1:
        self.backRound.image = UIImage(named: "redBack")
    case 2:
        self.backRound.image = UIImage(named: "greenBack")
    case 3:
        self.backRound.image = UIImage(named: "orangeBack")
    case 5:
        self.backRound.image = UIImage(named: "purpleBack")

    default:
        break
    }*/

    switch sign1RandNum{
    case 1:
        self.sign1.image = UIImage(named: "blank")
        correctAnswer1 = shuffledColorArray[0]
    case 2:
        self.sign1.image = UIImage(named: "forward")
        correctAnswer1 = shuffledColorArray[1]
    case 3:
        self.sign1.image = UIImage(named: "fastForward")
        correctAnswer1 = shuffledColorArray[2]
    case 4:
        self.sign1.image = UIImage(named: "backSpace")
            correctAnswer1 = shuffledColorArray[4]
        default:
        break
    }
    switch sign2RandNum{
    case 1:
        self.sign2.image = UIImage(named: "blank")
            correctAnswer2 = shuffledColorArray[1]
    case 2:
        self.sign2.image = UIImage(named: "forward")
            correctAnswer2 = shuffledColorArray[2]
    case 3:
        self.sign2.image = UIImage(named: "fastForward")
            correctAnswer2 = shuffledColorArray[3]
    case 4:
        self.sign2.image = UIImage(named: "backSpace")
            correctAnswer2 = shuffledColorArray[0]
    default:
        break
    }
    switch sign3RandNum{
    case 1:
        self.sign3.image = UIImage(named: "blank")
            correctAnswer3 = shuffledColorArray[2]
    case 2:
        self.sign3.image = UIImage(named: "forward")
            correctAnswer3 = shuffledColorArray[3]
    case 3:
        self.sign3.image = UIImage(named: "fastForward")
            correctAnswer3 = shuffledColorArray[4]
    case 4:
        self.sign3.image = UIImage(named: "backSpace")
            correctAnswer3 = shuffledColorArray[1]
    default:
        break
    }
    switch sign4RandNum{
    case 1:
        self.sign4.image = UIImage(named: "blank")
            correctAnswer4 = shuffledColorArray[3]
    case 2:
        self.sign4.image = UIImage(named: "forward")
            correctAnswer4 = shuffledColorArray[4]
    case 3:
        self.sign4.image = UIImage(named: "fastForward")
            correctAnswer4 = shuffledColorArray[0]
    case 4:
        self.sign4.image = UIImage(named: "backSpace")
            correctAnswer4 = shuffledColorArray[2]
    default:
        break
    }
    switch sign5RandNum{
    case 1:
        self.sign5.image = UIImage(named: "blank")
            correctAnswer5 = shuffledColorArray[4]
    case 2:
        self.sign5.image = UIImage(named: "forward")
            correctAnswer5 = shuffledColorArray[0]
    case 3:
        self.sign5.image = UIImage(named: "fastForward")
            correctAnswer5 = shuffledColorArray[1]
    case 4:
        self.sign5.image = UIImage(named: "backSpace")
            correctAnswer5 = shuffledColorArray[3]
    default:
        break
    }

    if timerRunning == false{
        timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("counting"), userInfo: nil, repeats: true)
        timerRunning = true
    }


    if userAnswer != correctAnswer1{
        self.youFailedView.image = UIImage(named: "youFailed")
    }

}
var userAnswer = ""
@IBAction func blueButtonPressed(sender: UIButton) {
    userAnswer = "blueBrick"
}
@IBAction func purpleButtonPressed(sender: UIButton) {
    userAnswer = "purpleBrick"
}
@IBAction func orangeButtonPressed(sender: UIButton) {
    userAnswer = "orangeBrick"
}
@IBAction func yellowButtonPressed(sender: UIButton) {
    userAnswer = "yellowBrick"
}
@IBAction func redButtonPressed(sender: UIButton) {
    userAnswer = "redBrick"
}



}

我不确定为什么当我按下播放按钮进入这个场景时这段代码会停止程序。播放按钮在我的第一个视图上,我在故事板上连接了一个 segue,以便在按下时直接转到该视图控制器。然而,一旦按下播放按钮,什么也没有发生,它也不会继续到这个场景。不确定为什么要这样做,没有无限循环或我看到的原因。有什么建议么?另外,如果有人知道如何简化其中的一些代码会很好,我是初学者并且是 swift 的新手。

您可以分析应用程序以查看代码的哪一部分执行时间较长,这将帮助您缩小范围。按住 运行 按钮和 select 配置文件。

从出现的菜单中点击 "Time Profiler"。

点击录制按钮,您将看到该应用出现。

遇到运行缓慢时,请点击分析器中的停止按钮。突出显示执行时间消耗的峰值。

然后您将能够看到调用的方法以及在此期间执行的时间。

展开该屏幕上的方法,找出导致运行缓慢的代码部分,然后您可以对其进行优化以使其更快或将其移至后台线程。