2010-12-22 63 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中的類名稱設置正確。