Мое приложение прекрасно работает на всех устройствах и версиях 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;
}
}
Вы исправили эту аварийную ошибку памяти в iPad mini? Пожалуйста, предложите мне, как справиться с этой ситуацией? – Mani
У меня пока нет решения. – NaXir
Я также получаю ту же проблему, но я обнаружил, что при отладке из xcode он сбой, но при запуске приложения в качестве обычного пользовательского устройства формы он отлично работает .... кажется, есть ошибка в iOS – HarshIT