XCode Fehler: "GDB:Program received signal: "SIGABRT"."
Ich Schreibe ein einfaches Programm, mit cocos2d 0.99.5, dem iPhone SDK 4.2. Ich habe meine Anwendung auf dem Gerät, aber wenn ich drücken Sie die Taste, um Schalter CCScenes, manchmal ist die app plötzlich keine Antwort und XCode-erhalten den Fehler:"GDB:Program received signal:"SIGABRT". "
Dieses Problem passiert durch Zufall. Betätigen Sie die Schaltfläche " überblendung viele Male diesen Fehler zu reproduzieren.
Habe ich gelernt, dass SIGABRT wird ausgelöst durch die abort () - Funktion. abort() wird aufgerufen, indem Sie die standard-assert () - makro, wenn eine assertion fehlschlägt. Aber es gibt keine assert-Funktion in meinem Programm.
Könnte mir jemand sagen wie wirkt sich dieses problem passieren, und wie dieses problem zu lösen? Ich weiß nicht, was als Nächstes zu tun ist jetzt.
2010-12-23 02:51:21.485 RotateClock[4087:307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CCTransitionFade orientationChanged:]: unrecognized selector geschickt Instanz 0x2380c0'
-(void) orientationChanged:(NSNotification *)notification { // ... [[CCDirector sharedDirector].runningScene orientationChanged:notification]; }
Ich vermute, dass Sie mit Cocos2D und aus den header-Dateien, die es sieht aus wie runningScene ist der Typ CCScene die vom Typ CCNode, die nicht Aussehen,- (void)orientationChanged: definiert. Ich kann mich auch irren, da ich nie verwendet, Cocos2d vorher aber überprüfen.
Ja Joe, du hast Recht. Ich glaube, ich habe die Antwort gefunden. Wenn ich die Szene übergang, die aktuelle Szene wird CCTransitionFade Szene, und in diesem moment, wenn Sie das Programm empfangen device orientation change-Meldung, es wäre das orientationChanged:Benachrichtigungs-Funktion, aber es gibt keine solche Funktion in CCTransitionFade Klasse. Ich habe diese Funktion in CCTransitionFade und jetzt funktioniert es einwandfrei. Danke für Eure Antworten.
InformationsquelleAutor icethawless | 2010-12-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem gelöst wurde. Siehe die Kommentare oben.
Nicht nur, dass, aber ich denke, es wäre eine gute Idee, um die relevanten Kommentar Inhalt in dieser Antwort für Klarheit
InformationsquelleAutor icethawless
Wenn Sie SIGABRT erhalten, wenn die app startet, überprüfen Sie Ihre XIBS
Öffnen Sie jede XIB
Überprüfen Sie die Dateien, die Besitzer in jeder in der Identity Inspector
Stellen Sie sicher, dass die Klasse erwähnt, ist die richtige und Klasse vorhanden ist (ich hatte einige Dateien umbenannt und es hat nicht geklappt)
Start mit
Überprüfen Klassennamen im Identity Inspector ist ok.
Platzieren Sie Haltepunkte in
AppDelegate
SCHRITT 2 - in didFinishLaunchingWithOptions legen Sie einen weiteren Haltepunkt auf
In RootViewController.m (oder was auch immer sub-Klasse von VC selbst.viewController in AppDelegate ist) legen Sie einen Haltepunkt in
Wenn es kracht hier RootViewController.xib (oder was auch immer-Klasse das erste VC)
und überprüfen-Klasse ist die richtige für Dateien, die Eigentümer
Durchlaufen nach unten durch alle View-Controller
suchen initWithNibName zu finden, was XIBs genannt werden.
In jeder Prüfung werden die Klassennamen in der XIb richtig eingestellt ist.
InformationsquelleAutor brian.clear