Я новичок в Swift и пытаюсь разработать приложение для викторин. Когда я пытаюсь загрузить приложение на свой iPhone, я получаю эту ошибку SIGABRT в классе AppDelegate, а затем на телефоне просто белый экран. Как я могу это исправить? Я уже пытался очистить код, стер и тщательно проверил ссылки, которые у меня есть между кнопками и кодом (как предлагается в другом вопросе с этими ответами), и я все еще получаю эту ошибку.

Ниже мой класс просмотра

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.
    }

Любая помощь ДЕЙСТВИТЕЛЬНО будет оценена! Заранее спасибо.

-1
miriamfemerling 14 Мар 2018 в 03:41

2 ответа

Лучший ответ

Было бы хорошо посмотреть, что говорят журналы вашей консоли Xcode. Обычно в логах записывается информация о неработающей ссылке на какой-либо точке.

Также, чтобы ответить на ваш вопрос о том, как отслеживать текущие и старые ссылки в Xcode по сравнению с вашими IBOutlets и IBAction, слева есть точка. Если он заполнен, значит, розетка и действие правильно связаны.

IBoutlet linked

Помните, что иногда возникают проблемы с Xcode, и эти круги не отображаются должным образом. Просто щелкните один раз на соответствующей раскадровке, а затем снова щелкните файл viewController, все ваши ссылки будут отображаться правильно.

1
Deepika 14 Мар 2018 в 01:04

SIGABRT указывает, что приложение вызвало abort () (сбой без ограничений). Чтобы узнать больше о проблеме, вы можете добавить точку останова исключения. Для этого вам нужно перейти в навигатор точек останова, нажать кнопку «+» и «Добавить исключительную точку останова '

Чтобы узнать больше о доступных инструментах отладки, я предлагаю вам прочитать документация по инструменту отладки Apple

0
Enrique Bermúdez 14 Мар 2018 в 00:57