2011-01-14 7 views
1

Hallo Ich halte versuchen, meinen iPhone-App im iPhone-Simulator Firmware 4.2 zu debuggen, aber keine der Anwendungen öffnen und erhalte ich diesen Fehler namens „SIGABRT“ und die GDB sagt:iphone SIGABRT Fehler mit registerForSystemEvents Unbekanntem Selektor

+[MyAppDelegate registerForSystemEvents]: unrecognized selector sent to class...

ich nie diese Funktion immer genannt ... alles, was ich habe „New Project“ war und dann „Build and Run“

irgendwelche Vorschläge, wie diese Fehler zu beheben?

Danke, Thommaye

Antwort

0

Sie rufen eine Methode registerForSystemEvents: auf Ihre Stellvertretung Klasse aufgerufen, und Sie keine Klassenmethode in Ihrem Delegierten mit diesem Namen. Das Anzeigen des Codes wird ebenfalls hilfreich sein.

+0

Sache ist, ich nicht dieses Ereignis nennen jemals hatte. Ich habe gerade "neues Projekt" gesagt und dann gebaut und ausgeführt ... –

0

Ich hatte eine Weile mit diesem Fehler zu kämpfen und konnte es erst jetzt herausfinden, also wollte ich einwerfen, was für mich funktionierte, nur für den Fall, dass jemand anderes darüber stolpert.

In meinem Szenario habe ich ein PadController.h und ein PhoneController.h, die sowohl von AppController.h erben und ich hielt den Fehler bekommen, dass AppController nicht registerForSystemEvents:

Es wurde auf einem statischen Aufruf andernfalls könnte, so dass es im Wesentlichen versucht zu tun [AppController registerForSystemEvents:]

Mein AppController sah wie folgt aus:

@interface AppController : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>

Zuerst: Stellen Sie sicher, dass Ihr App-Delegierter von NSObject erbt und dem Protokoll UIApplicationDelegate entspricht.

Zweitens: Ich hatte in meinem Plist eine Zeile, die Principle Class sagte, die auf AppController zeigte. Das zu beseitigen ist tatsächlich das, was speziell für mich funktioniert hat. Ich denke, es wurde versucht, AppController zweimal zu starten (einmal von Interface Builder und einmal von diesem).

Drittens: Stellen Sie sicher, main.h etwas wie folgt aussieht:

@autoreleasepool { 
     int retVal = UIApplicationMain(argc, argv, nil, nil); 

     return retVal; 
    } 
Verwandte Themen