[英]XCode error: “GDB:Program received signal: ”SIGABRT“.”
我正在使用cocos2d 0.99.5编写一个简单的应用程序,iPhone SDK是4.2。 我已经在设备上运行了我的应用程序,但是当我按下按钮切换CCScenes时,有时应用程序突然没有响应,并且XCode收到错误:“ GDB:Program收到信号:” SIGABRT“。
此问题是偶然发生的。 您必须多次按下转换按钮才能重现此错误。
我知道SIGABRT是由abort()函数引发的。 当断言失败时,标准的assert()宏将调用abort()。 但是我的程序中没有assert函数。
谁能告诉我这个问题是怎么发生的,以及如何解决这个问题? 我不知道下一步该怎么做。
问题已经解决。 请参阅上面的评论。
如果在应用启动时收到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-在didFinishLaunchingWithOptions中放置另一个断点
self.window.rootViewController = self.viewController;
在RootViewController.m(或AppDelegate中的VC self.viewController的任何子类)中,在
viewDidLoad
如果在此处崩溃,请检查RootViewController.xib(或第一个VC的类别),然后检查“文件所有者”的类是否正确。
遍历所有View控制器,查找initWithNibName以查找被调用的XIB。 在每个检查中,XIb中的类名称均已正确设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.