我在main.m文件中的代码如下。从我开始编写这个应用程序时起,我根本没有改变它。
#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错误。 我的程序是一个显示红色按钮的应用程序,当您按下它时,它会播放视频。使用本教程实现iAd后出现此错误: http://www.ioslearner.com/implement-iads-tutorial-iphone-ipad-sdk/
它起初工作,但后来我开始收到SIGABRT错误。我做了很多搜索,无法弄清楚如何解决这个问题,在所有的网站中,有人问这个,然后自己弄清楚或通过一个我无法理解的非常模糊的答案。请帮忙!如果您回答,请具体说明我必须做什么。如果需要,我可以发布我的整个代码。 提前谢谢!
答案 0 :(得分:16)
当您在SIGABRT
的那一行上获得main
时,表示您的程序引发了异常。堆栈跟踪显示异常被捕获的位置,而不是被提升的位置。通常这没有帮助。
要调试问题,您可以做两件事:
单击调试器控制栏中的“继续执行程序”按钮,或选择程序&gt;调试&gt;从菜单栏继续。这将使程序继续进行例外处理。它会向调试器控制台打印一条消息,帮助您了解错误。 (在实际打印消息之前,您可能需要继续执行几次。)仔细阅读消息!它们通常包含有用的信息。
Set an exception breakpoint.这将使Xcode在引发异常的位置停止您的程序,这样您就可以看到导致问题的代码和堆栈跟踪
答案 1 :(得分:3)
SIGABRT(信号中止)表示应用程序崩溃是由于未能访问nil或不存在的内容,通常根据我的经验,它已经破坏了Outlets。
答案 2 :(得分:0)
您应该在UIVIewController的文件中调试您的应用程序(该应用程序所在的屏幕或视图)。 通常在以下情况下会出现此错误:
1)您的xib不适合您的商店。例如通常的UIView和UITableView控件而不是UITableViewController。
2)在你的程序中你想要使用一个不存在的对象。例如:如果数组元素3的数量,但你想获得第4个元素。