与registerForSystemEvents无法识别的选择器的iphone SIGABRT错误

时间:2011-01-14 22:06:46

标签: iphone selector

您好我继续尝试在iPhone模拟器固件4.2中调试我的iPhone应用程序,但没有任何应用程序打开,我收到此错误称为“SIGABRT”,gdb说:

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

我从未调用过这个函数......我所做的只是“新项目”,然后是“构建并运行”

有关如何解决此错误的任何建议?

谢谢, Thommaye

2 个答案:

答案 0 :(得分:0)

您正在委托类中调用名为registerForSystemEvents:的方法,并且您的委托中没有具有该名称的类方法。显示代码也会有所帮助。

答案 1 :(得分:0)

我在这个错误中挣扎了一段时间,直到现在才想出来,所以我想投入一些对我有用的东西,以防万一其他人偶然发现。

在我的方案中,我有一个PadController.h和一个PhoneController.h,它们都从AppController.h继承而且我不断收到AppController无法registerForSystemEvents:的错误}

静态调用失败了,所以它本质上是尝试[AppController registerForSystemEvents:]

我的AppController看起来像这样:

@interface AppController : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>

第一: 确保您的App Delegate继承自NSObject并符合UIApplicationDelegate协议。

第二: 我在我的plist中有一行表示指向AppController的Principle Class。摆脱这一点实际上对我有用。我认为它试图两次启动AppController(一次来自Interface Builder,一次来自此)。

第三: 确保您的main.h看起来像这样:

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

        return retVal;
    }