我的主文件中出现SIGABRT错误,并且不知道该怎么做。
Maim文件是:
#import <UIKit/UIKit.h>
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
错误消息突出显示以下行:
int retVal = UIApplicationMain(argc, argv, nil, nil);
并读取:“线程1:编程接收信号:”SIGABRT“
你能告诉我什么是错的,我需要做些什么才能让它编译?
谢谢。
答案 0 :(得分:1)
在您的应用程序的其他位置出现错误。您必须运行调试程序并逐步浏览导致崩溃的屏幕,直到它到达SIGABRT
中跳转到main
的行。通常它会与内存管理(过度释放对象然后访问它)或UIKit
对象的不正确初始化有关,UIKit
然后尝试渲染(包括返回一个对象)错误的类型,或意外地将错误的tag
分配给UI元素,因此它发送了一个它无法处理的消息。但是,如果它是不正确的初始化,则应该打印一个额外的错误以通知您。
编辑:其实,是的,你提到它无法编译? SIGABRT是发送到正在运行的应用程序的信号,因此在编译期间我看不出它是如何出现的。