gpt4 book ai didi

ios - UIImagePickerControllerOriginalImage 收到内存警告并崩溃

转载 作者:行者123 更新时间:2023-12-01 16:43:13 24 4
gpt4 key购买 nike

我在右上角有一个 UICollectionView 和一个条形按钮(CameraViewController1:UICollectionViewController)。流程是当我拍照时它移动到一个可以裁剪图像的新 View Controller 。用户在选择任何一个后有两个选项使用和取消此选项将图像返回到 Collection View 并像单元格一样排列。我想拍很多照片。但我最多只能拍摄 3 张照片,因为应用程序立即崩溃并显示消息“应用程序因内存而终止压力”。但最糟糕的是,当我在运行 iOS 7 的 iPhone 5 中测试相同的应用程序时,没有发生崩溃。当我在运行 iOS 7 的 iPhone 4 中测试相同的应用程序时,它会崩溃并产生收到的内存警告。

这是我的代码

- (IBAction)TakeaPhoto:(id)sender {

[[UIApplication sharedApplication]setStatusBarHidden:FALSE withAnimation:NO];

gallery=0;
picker1 = [[UIImagePickerController alloc] init];
picker1.delegate = self;
self.resizeableCropArea =YES;
self.cropSize=CGSizeMake(300,350);
//picker1.allowsEditing = YES;
picker1.sourceType = UIImagePickerControllerSourceTypeCamera;

[self presentViewController:picker1 animated:YES completion:NULL];
}


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

[self dismissViewControllerAnimated:YES completion:NULL];

UIImage *image = [info objectForKey: UIImagePickerControllerOriginalImage];

image_cap = [self imageTemp:image scaledToSize:CGSizeMake(320, 370)];


dataTemp = UIImageJPEGRepresentation(image,0.0);

CropViewController *cropController = [[CropViewController alloc] init];

cropController.sourceImage = [info objectForKey:UIImagePickerControllerOriginalImage];

Original_img = UIImageJPEGRepresentation(cropController.sourceImage,0.0);

[original_image addObject:[UIImage imageWithData:Original_img]]; //original_image Nsmutablearray

NSLog(@"source image=%@",cropController.sourceImage);

cropController.resizeableCropArea = self.resizeableCropArea;

cropController.cropSize = self.cropSize;

cropController.delegate = self;

Cancel_Image= cropController.sourceImage;

[self.navigationController pushViewController:cropController animated:YES];

}

最佳答案

@Ramanan R R,我完全同意@Ru​​shabh 的评论。
您正在多次分配 UIImagePickerController,因为 TakeaPhoto 方法调用您正在分配 UIImagePickerConrtoller,因此没有必要多次分配。它会破坏内存,这就是您的应用程序将终止或崩溃的原因..
只需在 viewDidLoad 中分配一次,确保再做一件事,做
UIImagePickerController 作为一个强大的属性,因为过去我花了一整天的时间来解决问题......

希望这对您有用,并且您的应用程序将顺利运行...:)

关于ios - UIImagePickerControllerOriginalImage 收到内存警告并崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22402468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com