7

Мое приложение прекрасно работает на всех устройствах и версиях ios, но когда дело доходит до ipad mini, на iOS7, когда я выделяю: запустите UIImagePickerController и дисплей. После получения изображения приложение неожиданно дает предупреждение о низкой памяти и сбое. Вот мой код захвата изображения.UIImagePickerController Низкая ошибка памяти на ios7 на iPad Mini

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
{ 
    UIImagePickerController *imagePickerController; 
    if ([UIUtilityClass isCurrentVersionIsIOS7OrGreater]) { 
     UIImagePickerController* imagePickerController = [[UIImagePickerController alloc] init]; 
     [imagePickerController setDelegate:self]; 
     imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; 
     imagePickerController.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeImage,nil]; 
     imagePickerController.allowsEditing=NO; 
     CGFloat scaleFactor=1.3f; 

     switch ([UIApplication sharedApplication].statusBarOrientation) { 
      case UIInterfaceOrientationLandscapeLeft: 
       imagePickerController.cameraViewTransform = CGAffineTransformScale(CGAffineTransformMakeRotation(M_PI * 90/180.0), scaleFactor, scaleFactor); 
       break; 
      case UIInterfaceOrientationLandscapeRight: 
       imagePickerController.cameraViewTransform = CGAffineTransformScale(CGAffineTransformMakeRotation(M_PI * -90/180.0), scaleFactor, scaleFactor); 
       break; 
      case UIInterfaceOrientationPortraitUpsideDown: 
       imagePickerController.cameraViewTransform = CGAffineTransformMakeRotation(M_PI * 180/180.0); 
       break; 
      default: 
       break; 
     } 

    } 
    else 
    { 
     imagePickerController = [[NonRotatingUIImagePickerController alloc] init]; 
     imagePickerController.delegate = self; 
     imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; 
     imagePickerController.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeImage,nil]; 
     imagePickerController.allowsEditing = YES; 
    } 


    popoverController = [[UIPopoverController alloc] initWithContentViewController:imagePickerController]; 
    popoverController.delegate=self; 
    [popoverController presentPopoverFromRect:CGRectMake(626,142,120,135) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
    [imagePickerController release]; 
    newMedia = YES; 

} 

После этого я снимаю изображение, используя следующий код.

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 


[popoverController dismissPopoverAnimated:true]; 
[popoverController.delegate popoverControllerDidDismissPopover:popoverController]; 

UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
int orientation=image.imageOrientation; 
image=[image imageToFitSize:PIC_SIZE method:MGImageResizeCrop]; 
    switch (orientation) { 
     case UIImageOrientationUp: 
      // do nothing 
      break; 
     case UIImageOrientationDown: 
      image=[image imageRotatedByDegrees:180.0]; 
      break; 
     case UIImageOrientationLeft: 
      image=[image imageRotatedByDegrees:90.0]; 
      image=[image imageRotatedByDegrees:180]; 
      break; 
      //2 
     case UIImageOrientationRight: 
      image=[image imageRotatedByDegrees:-90.0]; 
      image=[image imageRotatedByDegrees:180]; 
      break; 
     default: 
      break; 
    } 

    } 
+0

Вы исправили эту аварийную ошибку памяти в iPad mini? Пожалуйста, предложите мне, как справиться с этой ситуацией? – Mani

+0

У меня пока нет решения. – NaXir

+0

Я также получаю ту же проблему, но я обнаружил, что при отладке из xcode он сбой, но при запуске приложения в качестве обычного пользовательского устройства формы он отлично работает .... кажется, есть ошибка в iOS – HarshIT

ответ

0

Протестировано ли оно без вызова выпуска на изображениеPickerController? Если вы используете ARC, я не думаю, что вам нужно это сделать.

+0

Я не использую ARC – NaXir

Смежные вопросы