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?
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
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.
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:
faites simplement défiler vers le haut dans la sortie et l'erreur sera révélée.
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
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
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.
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
j'Espère que cela peut vous aider aussi :)
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.