2012-03-20 46 views
4

我在main.m文件中的代碼如下。當我開始編寫這個應用程序時,我根本沒有改變它。我在main.m中有一個錯誤「線程1:信號SIGABRT」我該如何解決這個問題?

#import <UIKit/UIKit.h> 

#import "rickAppDelegate.h" 

int main(int argc, char *argv[]) 
{ 
    @autoreleasepool { 
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([rickAppDelegate class])); 
    } 

} 

我在'return UIApplicationMain'行上得到了SIGABRT錯誤。 我的程序是一個顯示紅色按鈕的應用程序,當您按下它時,它會播放視頻。我在使用本教程實施iAds後出現此錯誤: http://www.ioslearner.com/implement-iads-tutorial-iphone-ipad-sdk/

它起初工作,但後來我開始接收SIGABRT錯誤。我做了很多搜索,無法弄清楚如何解決這個問題。在所有的網站中,有人會問這個問題,然後自己或者通過一個我模糊不清的答案來解決問題。請幫忙!如果你回答,你能具體說明我必須做什麼。如果需要,我可以發佈我的整個代碼。 在此先感謝!

+1

在設備中的調試模式下運行,並檢查是否有任何異常 – Tornado 2012-03-20 07:18:15

+0

上傳截圖,它在代碼中激發異常,這將有助於人們瞭解它崩潰的原因以及爲什麼! – Kuldeep 2012-03-20 07:31:29

+0

該教程代碼是否工作不變,或者它是否也提供了SIGABRT?如果我記得iAd的填充率很低(有時沒有廣告),那麼AdWhirl就是門票。無論您選擇何種方式,您都可以查看代碼,以根據Apple/Google最新的實施文檔展示廣告。事情變了,教程可能有舊的代碼。 – 2012-03-20 07:33:37

回答

14

當您在main的該行上得到SIGABRT時,這意味着您的程序引發了異常。堆棧跟蹤顯示出例外情況是被捕獲,而不是它在被提出。通常這沒有幫助。

要調試的問題,你可以做兩件事情:

  1. 點擊「繼續執行程序」按鈕,在調試器的控制桿,或選擇程序>調試>從菜單欄中繼續。這將讓程序繼續進行異常提升過程。它將打印一條消息到調試器控制檯,這將幫助你瞭解什麼是錯誤的。 (在實際打印消息之前,您可能需要繼續執行幾次)仔細閱讀消息!他們通常包含有用的信息。

  2. Set an exception breakpoint.這將使在Xcode的在異常正在提出點停止你的程序,所以你可以看到代碼,並導致該問題的堆棧跟蹤。

+0

感謝您的支持。現在,我必須讓我的應用程序崩潰,以便我可以試用。建議? :) – 2012-03-20 07:35:35

0

您應該在UIVIewController(該屏幕或視圖中應用程序掉落的位置)的文件中調試您的應用程序。 通常在以下情況下出現此錯誤:

1)您的xib不適合您的網點。例如通常的UIView和UITableView控件而不是UITableViewController。

2)在你的程序中你想使用一個不存在的對象。例如:如果數組元素的數量爲3,但您想獲得第4個元素。

+0

當您嘗試使用不存在的對象時,您將獲得EXC_BAD_ACCESS,而不是SIGABRT。對? – 2012-03-20 07:38:27

+0

我糾正了我的答案。我希望你現在清楚 – Gargo 2012-03-20 08:33:51

+0

我有一個問題,我正在用xibs去,但項目被配置爲使用(非遠程)故事板,從Info.plist中刪除故事板爲我解決了它 – 2017-11-30 22:08:49