Iphone 程序接收信号SIGABRT
在iPhone应用程序中,我使用UIImage picker控件从照片库中拾取图像,然后对其进行处理,并分别使用UIImageview和UITextview显示图像和相应的输出。对于一些图像,它工作正常,对于一些图像,程序崩溃,当用断点检查时,我得到了类似程序接收信号SIGABRT的消息。有谁能建议我如何处理这个错误吗。 注意:对于我得到的每个输出图像,我都用断点检查它。 我的示例代码在这里 要显示图像,请执行以下操作:Iphone 程序接收信号SIGABRT,iphone,objective-c,ios4,Iphone,Objective C,Ios4,在iPhone应用程序中,我使用UIImage picker控件从照片库中拾取图像,然后对其进行处理,并分别使用UIImageview和UITextview显示图像和相应的输出。对于一些图像,它工作正常,对于一些图像,程序崩溃,当用断点检查时,我得到了类似程序接收信号SIGABRT的消息。有谁能建议我如何处理这个错误吗。 注意:对于我得到的每个输出图像,我都用断点检查它。 我的示例代码在这里 要显示图像,请执行以下操作: CGRect myImageRect = CGRectMake(0.0f
CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 240.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
[myImage setImage:img];
myImage.opaque = YES; // explicitly opaque for performance
[self.view addSubview:myImage];
[myImage release];
要显示文本,请执行以下操作:
CGRect frame = CGRectMake(0.0f, 250.0f, 320.0f,25.0f);
UITextView * tmpTextView = [[UITextView alloc]initWithFrame:frame];
tmpTextView.text = [NSString stringWithFormat:@"%@%@",@"value: ", somevalue];
[self.view addSubview:tmpTextView];
[tmpTextView release];
SIGABRT
由函数引发。如果没有更多信息,就不可能准确地说出程序中发生了什么,但是调用abort()
最常见的原因是:
- 您正在向不支持/实现该消息的Objective-C对象发送消息。这导致了可怕的错误
- 您在某处有一个失败的断言。在定义宏
的非调试版本中,当断言失败时,标准库宏调用NDEBUG
abort()
- 您有一些内存踩踏/分配错误。当
/malloc
检测到损坏的堆时,调用free
(例如,请参阅)abort()
几乎在所有情况下,调试控制台都会为您提供更多有关调用
abort()
的原因的信息,因此请务必查看那里。谢谢您的回复。我解决了这个问题。@ashok:如果你告诉我们你是如何解决这个错误的,那将非常有帮助。在你自己的代码库中找到部分错误的一个好方法是打开一个异常断点(或者确保你没有关闭断点:)。例如,这将准确地向您显示您的哪一个断言造成了问题。您是否可以编辑您的帖子,使代码具有突出显示的语法?