web-dev-qa-db-de.com

libc ++ abi.dylib: wird mit einer nicht erfassten Ausnahme vom Typ NSException (lldb) beendet

Ich programmiere eine App in Swift und wenn ich die Test-App auf dem iPhone-Simulator starte, funktionierte alles, aber dann versuche ich, nach rechts zu streichen. Dies ist eine Geste, die ich hinzugefügt habe, um zur nächsten Seite zu gelangen. Es stürzt ab und zeigt diesen Fehlerbericht im Konsolenprotokoll.

2014-10-18 12:07:34.400 soundtest[17081:818922] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<soundtest.ViewControllerTwo 0x7f92f1f20090> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key sfdfa.'
*** First throw call stack:
(
    0   CoreFoundation                      0x00000001067813f5 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x00000001082afbb7 objc_exception_throw + 45
    2   CoreFoundation                      0x0000000106781039 -[NSException raise] + 9
    3   Foundation                          0x0000000106b984d3 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259
    4   CoreFoundation                      0x00000001066cb400 -[NSArray makeObjectsPerformSelector:] + 224
    5   UIKit                               0x00000001072ce97d -[UINib instantiateWithOwner:options:] + 1506
    6   UIKit                               0x000000010712f698 -[UIViewController _loadViewFromNibNamed:bundle:] + 242
    7   UIKit                               0x000000010712fc88 -[UIViewController loadView] + 109
    8   UIKit                               0x000000010712fef9 -[UIViewController loadViewIfRequired] + 75
    9   UIKit                               0x000000010713038e -[UIViewController view] + 27
    10  UIKit                               0x00000001076cd83f -[_UIFullscreenPresentationController _setPresentedViewController:] + 65
    11  UIKit                               0x000000010710bc49 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 105
    12  UIKit                               0x000000010713c121 -[UIViewController _presentViewController:withAnimationController:completion:] + 1746
    13  UIKit                               0x000000010713e461 __62-[UIViewController presentViewController:animated:completion:]_block_invoke + 132
    14  UIKit                               0x000000010713e385 -[UIViewController presentViewController:animated:completion:] + 229
    15  UIKit                               0x00000001073bb9d6 _UIGestureRecognizerSendActions + 262
    16  UIKit                               0x00000001073ba679 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 532
    17  UIKit                               0x00000001073bf296 ___UIGestureRecognizerUpdate_block_invoke662 + 51
    18  UIKit                               0x00000001073bf192 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 254
    19  UIKit                               0x00000001073b520d _UIGestureRecognizerUpdate + 2796
    20  UIKit                               0x00000001070520a6 -[UIWindow _sendGesturesForEvent:] + 1041
    21  UIKit                               0x0000000107052cd3 -[UIWindow sendEvent:] + 667
    22  UIKit                               0x000000010701fae1 -[UIApplication sendEvent:] + 246
    23  UIKit                               0x000000010702cbad _UIApplicationHandleEventFromQueueEvent + 17370
    24  UIKit                               0x0000000107008233 _UIApplicationHandleEventQueue + 1961
    25  CoreFoundation                      0x00000001066b6ad1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    26  CoreFoundation                      0x00000001066ac99d __CFRunLoopDoSources0 + 269
    27  CoreFoundation                      0x00000001066abfd4 __CFRunLoopRun + 868
    28  CoreFoundation                      0x00000001066aba06 CFRunLoopRunSpecific + 470
    29  GraphicsServices                    0x000000010a1699f0 GSEventRunModal + 161
    30  UIKit                               0x000000010700b550 UIApplicationMain + 1282
    31  soundtest                           0x000000010624503e top_level_code + 78
    32  soundtest                           0x000000010624507a main + 42
    33  libdyld.dylib                       0x000000010ae4a145 start + 1
    34  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 
135
Nick

CMYR - "Das kann auch passieren, wenn Sie eine Schaltfläche mit einer IBAction verbunden haben, die nicht mehr existiert (oder umbenannt wurde)"

Wenn dieses Problem auftritt, stellen Sie sicher, dass Sie zu Main.storyboard gehen. Klicken Sie mit der rechten Maustaste auf das gelbe Kästchen (View Controller) oben in der Telefonkontur und LÖSCHEN Sie die Steckdosen mit gelben Markierungen. 

Was in solchen Fällen passiert, ist, dass Sie wahrscheinlich eine Aktion benannt und dann umbenannt haben. Sie müssen den alten Namen löschen, und wenn dies der Fall war, wird das Problem in der sim sofort beginnen! 

enter image description here

344
Trapp

Haben Sie zufällig die Variable OS_ACTIVITY_MODE gesetzt? Um zu überprüfen, ob Sie diese Variable festgelegt haben (und deaktivieren), gehen Sie in Xcode 9 folgendermaßen vor:

Select from Xcode menu Product -> Scheme -> Edit Scheme.. Select the Run scheme and look under Arguments. If you see the OS_ACTIVITY_MODE variable checked, deselect it

30

In Xcode 9 und Swift 4:

Drucken Sie den Ausnahmestapel, um den Grund der Ausnahme zu erfahren:

  1. Gehe zum Haltepunktnavigator.
  2. Hinzufügen (+) Ausnahme-Haltepunkt hinzufügen.

  3. Wählen Sie den neuen Haltepunkt aus, klicken Sie bei gedrückter Ctrl-Taste auf Haltepunkt bearbeiten. 

  4. Aktion hinzufügen und eingeben: po $ arg1

 enter image description here

29
Ahmed Lotfy

Andere Lösungen funktionierten nicht für mich, hier ist meine. Es gilt nur für Xcode 8, wenn es im Swift 2.3 -Modus ausgeführt wird:

Sieht aus, als würde Interface Builder versuchen, die Methode umzubenennen, die mit der Schaltfläche verbunden werden soll.

Hier ist ein Radar mit mehr Details.

Die Lösung (Problemumgehung) besteht darin, den Methodenparameternamen manuell in _ zu ersetzen:

@IBAction func editPictureTapped(sender: UIButton) {  // not working
    print("Tapped")
}

Ändern Sie dies:

@IBAction func editPictureTapped(_: UIButton) {     // working OK
    print("Tapped")
}
7
Andrej

Es könnte auch ein falscher Segue Identifier Name sein. Z.B -

performSegueWithIdentifier("wrongSegueName", sender: self)
4
M_R_K

Bei Xcode 7 passierte dies für mich und ich hatte keine Outlets mit gelben Flaggen, die ich löschen konnte.

Das einzige, was für mich funktionierte, war das Ersetzen dieser Zeile in AppDelegate:

[window addSubview:viewController.view];

zu:

[window setRootViewController:viewController];
3
Eran Talmor

Meine Situation war etwas anders, ich versuchte, in eine UINavigationController zu wechseln, und was für mich behoben wurde, war der Hauptteil der Warteschlange.

Für Ziel-C:

dispatch_async(dispatch_get_main_queue(), ^{
    [self performSegueWithIdentifier:@"SegueName" sender:self];
});

Für Swift 3:

DispatchQueue.main.async { [weak self] in
    self?.performSegue(withIdentifier: "SegueName", sender: self)
}
3
Simon

Für mich bestand das Problem in meiner IBAction mit einem UIButton. 

Wenn Sie bei gedrückter Strg-Taste eine IBAction aus einem UIButton erstellen, müssen Sie "UIButton" aus der Dropdown-Liste "Typ" auswählen. Die Standardauswahl von AnyObject führt zum Absturz der App, wenn Sie auf den UIButton tippen. 

 enter image description here

3
Chris Livdahl

In meinem Fall habe ich eine Delegat-Methode aufgerufen, die Methode wurde jedoch nicht deklariert.

Dieser Fehler ist generisch und kann verschiedene Ursachen haben. Stellen Sie sicher, dass Sie Ihre Protokolle nicht deaktiviert haben, um zu sehen, was passiert ist. Aktiviere OS_ACTIVITY_MODE in den Schemata, falls du es deaktiviert hast. Sie haben es möglicherweise deaktiviert, um viele irrelevante Protokolle zu verhindern, aber sie sind praktisch.

Sie können die Ursache auch detaillierter verfolgen, indem Sie einen Ausnahmepunkt po $arg1 hinzufügen. Wie schon von Ahmed-Lotfi erwähnt

Hier ist eine allgemeine Checkliste, die Sie durchgehen können.

2) Check if you have renamed an IBOutlet and calling it
3) Check if you have renamed a method name or the method doesn't exist
4) Check if you are trying to add or remove any view from hierarchy
5) Check for any missing framework or library
6) Check for any missing flag in the Proejct Setting (-obj) or any other linker flag etc.
2
Tough Guy

Es könnte sich auch um eine unterbrochene Triggered Segues handeln. Überprüfen Sie Ihr Storyboard, sobald Sie die Segues erneut verbinden , oder wenn der Ausgang wieder funktioniert.

Check the Segues

Stellen Sie sicher, dass das Identifier des Segue korrekt und Ihrem Code ähnlich ist.

enter image description here

2
Cons Bulaquena

es kann mehr als 1 IBAction für eine Schaltfläche in Ihrem View-Controller geben. Versuchen Sie, diese herauszufinden und alle vorherigen Elemente für diese Schaltfläche in Ihrem Controller zu entfernen und eine neue Schaltfläche zu erstellen. Sie wird Ihr Problem lösen. 

1
Amit Verma

Ich füge mein Problem der Liste der möglichen Lösungen hinzu, falls jemand anderes in diesem Thread auftritt.

TableView-Zellenkennung Vergewissern Sie sich zunächst, dass Ihre Zelle über eine Kennung verfügt. Stellen Sie zweitens sicher, dass Sie auf diesen Bezeichner verweisen, wenn Sie die Zelle aus der Reihe nehmen.

1
Dew Time

Stellen Sie sicher, dass Sie relative Einschränkungen nicht dynamisch auf eine Ansicht anwenden, die noch nicht in der Ansichtshierarchie vorhanden ist.

UIView *bottomView = [[UIView alloc] initWithFrame:CGRectZero];
[self.view addSubview:bottomView];

bottomConstraint = [NSLayoutConstraint constraintWithItem:bottomView
                                                attribute:NSLayoutAttributeBottom
                                                relatedBy:NSLayoutRelationEqual
                                                   toItem:self.view
                                                attribute:NSLayoutAttributeBottom
                                               multiplier:1
                                                 constant:0];
bottomConstraint.active = YES;

In obigem Beispiel wurde bottomView zum Teil der Ansichtshierarchie gemacht, bevor relative Einschränkungen darauf angewendet wurden.

1
Vipin

Ich bin neu bei Xcode, also habe ich einige Stunden gebraucht, um das Problem herauszufinden, um die xls-Datei zu laden. Ich habe die meisten Beispielcodes oben durchgesehen und keiner von ihnen löst den angezeigten Fehlercode. 

Die Lösung, die ich gefunden habe, war, dass wir das hinzuzufügende Häkchen 'Hinzufügen zu Zielen' angeben müssen, wenn wir die xls-Datei per Drag & Drop in Projekt -> Unterstützende Dateien importieren. 

1
Mark Khor

Ich habe diesen Fehler auf zwei Arten erhalten:

Ich habe diese Fehlermeldung erhalten, als ich in einen anderen UIViewController stieß.

Allerdings habe ich aus Versehen die andere Klasse von UITabBarController als Unterklasse klassifiziert und diese Fehlermeldung erhalten.

Wie habe ich es behoben? Ich wurde von UIViewController subclassed und stürzte nicht mehr ab :)


Ich wollte kein Storyboard verwenden. Also habe ich es gelöscht. Ich vergesse jedoch, seine Referenz in den Project settings zu löschen. Ich habe gerade auf das Projekt >> General >> Deployment Info >> geklickt und dann habe ich das Main Interface auf Black Space gesetzt. (Es wurde vorher auf main gesetzt)

Wie Sie in beiden Situationen sehen können, erhalten Sie eine Fehlermeldung, wenn Sie auf ein Objekt zugreifen, das existiert ...

1
Honey

Swift 4 :

Diese Fehlermeldung wurde aufgrund einer Änderung in der UIVisualEffectView-API angezeigt. In Swift 3 war dies in Ordnung: myVisuallEffectView.addSubview(someSubview)

Aber in Swift 4 musste ich es folgendermaßen ändern: myVisualEffectView.contentView.addSubview(someSubview)

1
lonesomewhistle

Wenn Sie reaktives und reaktives Firebase verwenden, stellen Sie sicher, dass Sie die Google-Services.plist-Datei verknüpfen ( https://github.com/invertase/react-native-firebase/issues/313#issuecomment -320435560 )

1
Julian K

Ich hatte den gleichen Fehler, als ich einen Tippfehler für eine der Ansichten hatte, während ich Einschränkungen mit dem visuellen Formatierer erstellte. Ich hoffe das hilft jemandem ... oder mir eines Tages wieder.

1
budidino

Ich bin auf dieses Problem gestoßen, als ich den Namen der Variablen geändert habe, die mit einer meiner Schaltflächen verbunden ist. Also denkt daran!

1
Sami

Für Swift 2.3

Dies scheint ein Fehler bei Xcode 8 und Swift 2.3 zu sein. Wenn Sie die Button-Aktion über das Storyboard mit Ihrem Code verknüpfen, stellen Sie sicher, dass Xcode die Aktion nicht umbenannt hat. Für mich ist das Hinzufügen eines withSender: Am Ende der Methoden gehe ich also zu meinem Code und benenne die Methode so um, dass sie der von Xcode geschriebenen entspricht.

Für jede andere Version überprüfen Sie die richtige Antwort.

0
Fernando Mata

In meinem Fall war es InterfaceBuilder. Ich hatte einige Views von einem anderen ViewController kopiert, was die Einschränkungen durcheinander brachte.

In InterfaceBuilder hatte ich den roten Pfeilfehler auf dem ViewController.

Während der Ausführung stürzte die App ab.

0
Vincent

Ich hatte zwei Probleme:

1) Mein Ziel enthielt nicht den View-Controller, der in der Storyboard-Datei verwendet wurde.

2) Mein Storyboard war ungefähr 3 Jahre alt. Ich musste einen der View-Controller im Tab-Controller neu erstellen (er hatte nur ein UITextField und ich weiß immer noch nicht, warum es nicht funktioniert)

0
Gomfucius

Nur die "Drop Armageddon" -Lösung funktionierte für mich: 

  • app vom Gerät entfernen
  • sauberes Projekt
  • führen Sie eine Neuinstallation auf dem Gerät aus
0

In meinem Fall wurde XCode müde und konnte die App aufgrund dieser fehlgeschlagenen Assertion nicht starten (dies wurde durch unseren Code festgelegt).

Das Ausführen auf einem anderen Gerät zeigte den Assertionsfehler, den wir beheben konnten, und alles wurde wieder normal.

0
Ege Akpinar

Noch eine andere mögliche Ursache:

In meinem Fall hatte ich eine xib und rief Bundle.main.loadNibNamed(... an, an dem es abstürzte. Alle meine IBOutlets und IBActions schienen gut zu sein. Am Ende bemerkte ich, dass die nib tatsächlich geladen wurde, aber als ich versuchte, auf die erste (und einzige) Ansicht (nib.first) zuzugreifen, funktionierte das nicht. Tatsächlich gab nib.count eine sehr große Ganzzahl (max int?) Anstelle des erwarteten 1 zurück. Ich habe versucht, die Ansicht erneut hinzuzufügen, aber immer noch kein Glück.

Am Ende habe ich die gesamte xib-Datei gelöscht und neu gestartet (aber ich habe einige Ansichten in meiner Zwischenablage gespeichert, damit ich sie einfügen kann, anstatt sie erneut zu erstellen).

Das hat funktioniert!

0

Dies kann passieren, wenn Sie eine Tabelle haben und vergessen, der Klasse UITableViewDelegate und UITableViewDataSource zuzuweisen

0
user3561494

Für meinen Fall Xcode 8.2.1 hatte ich eine Map Kit View in einem View Controller. Also ging ich hin

Phasen erstellen> Binär mit Bibliotheken verknüpfen

und fügte MapKit.framework hinzu, dann war es gut.

Ich denke, dass dies auch für andere Ansichten gelten wird, die einen Rahmen erfordern.

P.S. Beim Ausführen von iOS 9 wurde mir mitgeteilt, dass ein Problem mit Map Kit View aufgetreten ist, während auf iOS 10 nichts angezeigt wurde.

0
Protocole

In meinem Fall enthielt das Projekt Build Settings einige nicht vorhandene Verzeichnisse für Framework Search Paths und Library Search Paths.

0
Manuel

In meinem Fall stürzte die App ab, weil ich die Zielmitgliedschaft des Storyboards nicht festgelegt habe.

0
fredpi