我在iPhone应用程序中工作,我使用UIImage选择器控件从照片库中选择一个图像,然后处理它并分别使用UIImageview和UITextview显示图像和相应的输出。对于一些图像,它工作正常,一些图像程序崩溃,并在检查这个断点时,我收到消息,如PROGRAM RECEIVED SIGNAL SIGABRT。任何人都可以建议我如何处理这个错误。 注意:对于我得到输出的每个图像,我用断点检查它。 我的示例代码在这里,
显示图片:
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];
答案 0 :(得分:15)
abort(3)
函数引发了{p> SIGABRT
。如果没有更多信息,就不可能确切地告诉您程序中发生了什么,但abort()
被调用的最常见原因是:
NDEBUG
的非调试版本中,标准库宏assert(3)
在断言失败时调用abort()
malloc
/ free
检测到损坏的堆时,可以调用abort()
(请参阅,例如this question)在几乎所有情况下,调试控制台都会为您提供有关导致abort()
被调用的内容的更多信息,因此请务必查看。