2010-12-22 64 views
1

我正在写一个简单的应用程序使用cocos2d 0.99.5,iPhone SDK是4.2。我已经在设备上运行我的应用程序,但是当我按下按钮切换CCScenes时,有时应用程序突然没有响应,XCode收到错误消息:“GDB:Program received signal:”SIGABRT“。”XCode错误:“GDB:程序接收信号:”SIGABRT“。”

发生此问题意外地。您必须多次按下转换按钮才能重现此错误。

我了解到SIGABRT是由abort()函数引发的。当断言失败时,标准assert()宏调用abort()。但是我的程序中没有断言功能。

谁能告诉我这个问题是怎么发生的,以及如何解决这个问题?我现在不知道下一步该怎么做。

+1

看看你的调试器控制台,看看发生了什么错误消息。 – 2010-12-22 18:27:40

+0

2010-12-23 02:51:21.485 RotateClock [4087:307] ***由于未捕获异常'NSInvalidArgumentException',原因:' - [CCTransitionFade orientationChanged:]:无法识别的选择器发送到实例0x2380c0' – icethawless 2010-12-22 18:58:29

回答

0

如果你SIGABRT当应用程序启动检查XIBS

打开每个XIB

检查文件的所有者在每个身份检查

确保所提到的类是正确的和阶级存在(我已经改名为某些文件,但失败)

开始

MainWindow.xib 
RootViewController.xib 

检查Identity Inspector中的类名称是否正确。在

广场断点的AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
//if it enters this method then MainWindow.xib ok 

第2步 - 在AppDelegate中的didFinishLaunchingWithOptions放在

self.window.rootViewController = self.viewController; 

另一个断点在RootViewController.m(或其他子类VC self.viewController的是)中断点

viewDidLoad 

如果崩溃这里检查RootViewController.xib(或什么都类第一个VC是) ,检查类是文件的所有者

迭代通过所有视图控制器向下 找initWithNibName找到XIBs什么是所谓的正确。 在每次检查中,XIb中的类名称设置正确。