2017-12-07 3 views
2

Ich bin neu zu schnell und ich begann gerade an diesem Projekt zu arbeiten. Es ist eine Login-App für iOS. Hier ist der Code für den "Anmelden" -Button. "Parola" bedeutet übrigens "Passwort".Xcode, swift: SIGABRT Fehler auf Perfecsegue

Er stellt eine Verbindung zu einer externen Datenbank her, indem er einen Webdienst verwendet, um die eingegebenen Benutzerinformationen zu überprüfen. All das funktioniert gut.

Mein Problem ist der SIGABRT-Fehler, den ich bekomme, wenn die App versucht, das Segment auszuführen. Ich habe versucht, dieses Problem online zu suchen und alle Quellen sagten, dass dieser Fehler durch fehlerhafte Steckdosen und Verbindungen verursacht wird, aber alle meine Verkaufsstellen sind in Ordnung.

Wenn ich das Segment außerhalb der "let task = URLSession.shared.dataTask (mit: Anfrage als URLRequest) {" Struktur kann es ohne den SIGABRT Fehler ausführen, aber ich brauche es innerhalb, so dass es auf die zweite überträgt Nur anzeigen, wenn die Benutzereingabe korrekt ist.

Wie behebe ich das? Danke im Voraus.

Denken Sie daran, dass ich ein Anfänger zu xcode und schnell bin, so tut mir leid, wenn das eine dumme Frage ist.

Antwort

2

Der Absturz beruht darauf, dass Sie versuchen, einen Übergang in einem Hintergrundthread auszuführen (weil der Aufruf performSegue in einem URLSession-Rückruf erfolgt). Irgendein Code, der Sachen mit Ansichten needs tut, um auf dem Hauptgewinde zu laufen.

Versuchen Sie performSegue Anruf in einem DispatchQueue Block Einwickeln, wie folgt aus:

DispatchQueue.main.async { 
    self.performSegue(withIdentifier: "LogPers", sender: nil) 
}