我正在使用cocos2d 0.99.5编写一个简单的应用程序,iPhone SDK是4.2。我在设备上运行了我的应用程序,但是当我按下按钮切换CCScenes时,有时应用程序突然没有响应,XCode收到错误:“GDB:程序收到信号:”SIGABRT“。”
这个问题偶然发生。您必须多次按转换按钮才能重现此错误。
我了解到SIGABRT是由abort()函数引发的。当断言失败时,标准的assert()宏调用abort()。但是我的程序中没有断言功能。
有谁能告诉我这个问题是怎么发生的,以及如何解决这个问题?我现在不知道接下来该做什么。
答案 0 :(得分:1)
问题已经解决了。见上面的评论。
答案 1 :(得分:0)
如果您在应用开始时获得SIGABRT,请检查您的XIBS
打开每个XIB
检查Identity Inspector中的每个文件所有者
确保提到的类是正确的,并且类存在(我已经重命名了一些文件而且失败了)
从
开始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中的类名称设置正确。