Xcode App Crash beim starten?
Hey, ich bin absoluter Anfänger in Xcode und habe erst vor ein paar Stunden angefangen. Ich hab nen kleines Projekt gebaut mit einem Button der einen Text ändern sollte, sobald man ihn drückt. Das hat auch alles geklappt, aber dann wollte ich, dass der gleiche Button, wenn man ihn nochmal drückt, den Text wieder zurück ändert. Dafür hab ich halt den Code quasi kopiert und nur den Text auf den geändert werden sollte geändert. Komischerweise crasht die App jetzt immer, sobald man die Simulation startet. Also es öffnet sich ein weißes Fenster in der Simulation aber der Inhalt der App wird nicht angezeigt und nach einigen Sekunden switcht es zurück zu Xcode, AppDelegate.swift wird angezeigt und dieser Code rot markiert:
Thread 1: "[<FirstProject.ViewController 0x160009020> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key Undo."
Da steht ja, dass der Button "Undo" irgend nen Problem hat. Aber ich habe den ganzen dazugehörigen Abschnitt schon gelöscht. "Und" gibt es gar nicht mehr, trotzdem crasht es noch.
Kann mir irgendwer helfen?
Danke schonmal im Voraus für alle Antworten!
LG
1 Antwort
Dieser Fehler ist meist durch fehlerhafte Verbindungen zwischen Oberflächenelementen und Backendcode begründet.
Prüfe anhand dieser Antwort, ob dein Problem damit zusammenhängt und führe anschließend einen Rebuild / Clean Build durch.
Bezüglich deines Vorhabens: Den Status des Buttons kannst du in der Funktion, die auf den Klick reagiert, mittels einer Verzweigung prüfen.
if textField.text == "text 1" {
textField.text = "text 2"
}
else {
textField.text = "text 1"
}
Wenn die Bedingung im if-Kopf zutrifft, wird (nur) der nachfolgende Code-Block ausgeführt. Sollte dem nicht so sein, springt der Programmfluss stattdessen in den Code-Block nach else.
- NIB: Das ist eine Ressource/Datei, die Daten für dein UI speichert.
- XIB: Diese Datei macht im Grunde dasselbe. Wenn du den Interface Builder benutzt, um deine App-Oberfläche zu gestalten, wird beim Speichern diese Datei angelegt. Der Unterschied zu NIB liegt darin, dass sie ihre Daten im XML-Format speichert. Somit ist ihr Inhalt für Menschen einfacher lesbar. Wenn das Projekt gebaut wird, werden XIB-Dateien zu NIB-Dateien konvertiert, denn deren Format ist wiederum für den Computer besser lesbar. Das Öffnen einer XIB/NIB-Datei in Xcode sollte bei dir den Interface Builder öffnen.
Entweder du verwendest NIB/XIB zum Gestalten deiner Oberfläche oder Storyboards. In beiden Fällen solltest du auf deiner Builder-Oberfläche beim Button nach falschen Referenzen schauen.
Okay, danke. Dann hab ich noch eine Frage. Immer, wenn ich die App versuchen zu bilden steht da "Signing for "Appname" requires a development team. Select a development team in the Signing & Capabilities editor."
Hab das dann gegoogelt und da stand, man solle sich mit seiner Apple-ID anmelden. Hab ich dann gemacht, das verändert aber nichts. Es steht trotzdem immer da und sagt "Build failed".
Wie löse ich das?
Schließe zuerst einmal das Projekt und Xcode und öffne es erneut. Ab und an gibt es Probleme, wenn man sich, während das Projekt geöffnet ist, mit einer ID anmeldet oder einen Developer Account anlegt.
In den Einstellungen von Xcode (Preferences > Account) sollte es die Möglichkeit geben, deine Apple-ID anzugeben.
Danach kannst du in den Projekteigenschaften diesen erstellten Account in einer Auswahlliste selektieren. Es gibt dafür einen Abschnitt, der Signing & Capabilities heißt. Dieser Weg wird auf dieser Seite nochmal bebildert.
Das hat schonmal geklappt. Dafür hab ich jetzt nen anderen Error der wieder den Simulator crashen lässt:
"Thread 1: "[<Project1.ViewController 0x12cd20cf0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key test1.""
Das ist im Prinzip derselbe Fehler wie schon in deiner Anfangsfrage, nur diesmal ist ein anderes Element (test1) betroffen.
Die schreiben da alle von irgendeiner NIB oder XIB. Was ist das und wo findet man das?