我在UIViewController中使用UIImageView和UIScrollView来显示图像。工具栏上提供了实际大小和适合屏幕的选项,让用户可以在模式之间进行切换。在模式之间切换时,我随机得到EXEC_BAD_ACCESS错误。随机意味着我可以切换到实际大小模式,以适应屏幕模式copule的次数。当我随机点击其中一个时,应用程序就会崩溃。
这是我正在使用的代码,如果它不起作用,我可能会发布h和m文件。
-(void)loadImage{
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:imgFilePath];
imageView.image = [UIImage imageWithData: [NSData dataWithContentsOfFile:filePath]];
imgLoaded = 1;
}
-(void)FitToScreen{
if(imgLoaded<1) [self loadImage];
if(currentState != STATE_IMGPLAYER_FULLSCREEN ){
currentState = STATE_IMGPLAYER_FULLSCREEN;
//[imageView setContentMode:UIViewContentModeCenter];
[imageView setContentMode:UIViewContentModeScaleToFill];
CGSize photoSize = imageView.frame.size;
[scrollView setContentSize:photoSize];
}
//
}
-(void)ActualSize{
if(currentState != STATE_IMGPLAYER_ACTUAL_SIZE){
currentState = STATE_IMGPLAYER_ACTUAL_SIZE;
[imageView setContentMode:UIViewContentModeTopLeft];
[scrollView setContentMode:UIViewContentModeCenter];
CGSize photoSize = [imageView.image size];
[scrollView setContentSize:photoSize];
}
}
-(IBAction)info_clicked:(id)sender
{
UIButton *button = (UIButton *)sender;
if ([button tag] == BTN_FIT2SIZE) {
[Button setEnabled:NO];
[Button2 setEnabled:YES];
[self ActualSize];
} else if ([button tag] == BTN_FIT2SCREEN) {
[Button setEnabled:YES];
[Button2 setEnabled:NO];
[self FitToScreen];
}
[button release];
}控制台消息:
Program received signal: “EXC_BAD_ACCESS”.谢谢你的帮助。
发布于 2010-09-07 22:44:09
第一个快速猜测是,也许你没有保留imageView或它的图像?如果你能发布你的堆栈跟踪,也许还有它崩溃的那一行,它将会很有用。
https://stackoverflow.com/questions/3659582
复制相似问题