标签SIGABRT在Swift中的含义是什么?

时间:2018-03-14 00:41:05

标签: ios swift xcode debugging

我是Swift的新手,我正在尝试开发一个测验应用。当我尝试在我的iPhone上加载应用程序时,我在AppDelegate类中收到SIGABRT的这个错误,然后手机上只有一个白色的屏幕。我怎样才能解决这个问题?我已经尝试清理代码了,我擦除并仔细检查了按钮和代码之间的链接(正如另一个问题中建议的那些答案),我仍然得到这个错误。

下面是我的观点类

import UIKit
import Foundation

class ViewController: UIViewController {


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

    //Label
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var scorelabel: UILabel!
    @IBOutlet weak var flagview: UIImageView!

    //Botones
    @IBOutlet var botona: UIButton!

    @IBOutlet var botonb: UIButton!

    @IBOutlet var botonc: UIButton!

    @IBOutlet var botond: UIButton!

    let allQuestions = QuestionBank()
    var questionNumber: Int = 0
    var score: Int = 0
    var selectedAnswer: Int = 0

    //Button
    @IBAction func boton(_ sender: UIButton) {
        if sender.tag == selectedAnswer {
            print("Correcto")
            score+=1
        }
        else {
         print("Incorrecto")
        }
        updateQuestion()
    }

    func updateQuestion(){
    flagview.image=UIImage(named:allQuestions.list[questionNumber].questionImage)
        label.text=allQuestions.list[questionNumber].question

        botona.setTitle(allQuestions.list[questionNumber].optionA, for: UIControlState.normal)

        botonb.setTitle(allQuestions.list[questionNumber].optionB, for: UIControlState.normal)

        botonc.setTitle(allQuestions.list[questionNumber].optionC, for: UIControlState.normal)

        botond.setTitle(allQuestions.list[questionNumber].optionD, for: UIControlState.normal)

        selectedAnswer = allQuestions.list[questionNumber].correctAnswer

        questionNumber += 1
    }

    func updateUI(){

    }

    func restartQuiz(){

    }


    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

任何帮助都会非常感激!先感谢您。

2 个答案:

答案 0 :(得分:1)

看看你的Xcode控制台日志所说的内容会很好。通常,如果任何插座的链接断开,则日志中会有信息。

另外,如果要回答关于如何跟踪Xcode中的当前和旧链接以及IBOutlets和IBAction的问题,左侧会有一个点。如果它被填满,则表示出口和动作正确连接。

IBoutlet linked

请注意,有时会出现Xcode问题,并且这些圈子无法正确显示。只需在相关的故事板上单击一次,然后单击viewController文件,您的所有链接都将正确反映。

答案 1 :(得分:0)

SIGABRT表示该应用程序名为abort()(一种带有delibaiba的崩溃)。要了解有关该问题的更多信息,可以添加异常断点。要执行此操作,您需要转到断点导航器,单击“+”按钮和“添加异常断点’

要了解有关可用调试工具的更多信息,我建议您阅读Apple's Debug tool documentation