Swift error: signal SIGABRT comment le résoudre

Je ne suis qu'un débutant en codage Swift. Mon idée est assez simple, c'est une application avec deux boutons. Une fois cliqué, un champ text change son texte. Dans la Principale.StoryBoard, j'ajoute un textfield et deux boutons. Dans Le ViewController.fichier swift. J'écris comme ceci:

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var textfield: UITextField!
    @IBOutlet weak var button: UIButton!
    @IBOutlet weak var button2: UIButton!

    @IBAction func action1(_ sender: UIButton) {
        textfield.text="you just clicked on button1"
    }
    @IBAction func action2(_ sender: UIButton) {
        textfield.text="you just clicked on button2"
    }
}

Il est censé être tout droit. Cependant, une erreur apparaît qui montre:

thread1:signal SIGABRT

dans le fichier AppDelegate.swift ligne:

class AppDelegate: UIResponder, UIApplicationDelegate

Ce qui problème avec mon code?

24
demandé sur sasquatch 2017-04-21 18:23:53

7 réponses

Je résous le problème en clean le projet et reconstruire.

Pour nettoyer le projet aller à Barre De Menu: Produit -> Clean

puis pour reconstruire il suffit de cliquer sur le bouton Exécuter comme d'habitude

12
répondu Marwan Salim 2018-01-03 06:47:23

vous obtenez une erreur SIGABRT chaque fois que vous avez une prise déconnectée. Cliquez sur votre contrôleur de vue dans le storyboard et allez à connexions dans le panneau latéral (le symbole de flèche). Voyez si vous avez une prise supplémentaire, un duplicata ou une autre qui n'est pas connectée. Si ce n'est pas ça, alors peut-être que vous n'avez pas connecté vos prises à votre code correctement.

il suffit de se rappeler que SIGABRT se produit lorsque vous essayez d'appeler une prise (bouton, vue, textfield, etc) qui n'est pas y.

53
répondu Andy Lebowitz 2017-04-21 23:06:44

pour moi ce n'était pas un exutoire. J'ai résolu le problème en allant à l'erreur et en lisant ce qu'il a dit. (Également Noob..)

C'était l'erreur:

enter image description here

et la solution était ici: enter image description here

faites simplement défiler vers le haut dans la sortie et l'erreur sera révélée.

16
répondu dangalg 2018-01-10 18:33:14

une raison courante pour ce type d'erreur est que vous avez peut-être changé le nom de votre IBOutlet ou IBAction vous pouvez simplement vérifier cela en allant au code source.

Cliquez sur le main.storyboard puis sélectionnez ouvrir en tant que puis sélectionnez code source enter image description here

le code source s'ouvrira

et ensuite vérifier s'il y a le nom de l'iboutlet ou de l'ibaction que vous avez changé , s'il y a, sélectionnez la partie et supprimez-la et créez de nouveau iboutlet ou ibaction. Cela devrait résoudre votre problème

5
répondu Anshu Shahi 2018-02-23 06:39:37

j'ai eu le même problème. J'ai fait un bouton dans le storyboard et je l'ai relié au ViewController, et plus tard j'ai supprimé le bouton. Si la connexion était toujours là, mais le bouton n'était pas, et donc j'ai eu la même erreur que vous.

Correction:

aller à l'inspecteur de connexion (la flèche dans le coin supérieur droit, dans votre storyboard), et supprimer toute connexion non utilisée.

3
répondu Bijan Negari 2018-01-29 15:56:15

Dans mon cas, je n'étais pas d'erreur, juste le crash dans la AppDelegate et j'ai dû décocher l'option suivante: OS_ACTIVITY_MODE alors je pourrais avoir la vraie raison du crash dans mon .fichier xib

enter image description here

j'Espère que cela peut vous aider aussi :)

1
répondu GOrozco58 2018-09-06 14:15:06

dans mon cas, il n'y avait pas de journal.

mon erreur a été de pousser un contrôleur de vue dans une pile de navigation qui faisait déjà partie de la pile de navigation.

0
répondu XML 2018-06-27 08:35:19