UIImageView切换setContentMode随机EXEC_BAD_ACCESS

时间:2010-09-07 14:28:28

标签: iphone uiimageview

我在UIViewController中使用UIImageView和UIScrollView来显示图像。工具栏上的实际大小和适合屏幕选项允许用户在模式之间切换。在模式之间切换时,我随机获得EXEC_BAD_ACCESS错误。随机意味着我可以切换到实际大小模式以适应屏幕模式的次数。当我点击其中一个随机应用程序崩溃时。

以下是我正在使用的代码,如果它不会帮助我发布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”.

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

第一个快速猜测是,您可能没有保留imageView或其图像?如果您可以发布堆栈跟踪以及可能发生崩溃的行,那么它将非常有用。