我有一个集合视图(UICollectionViewController的子类),我放置了一个名为“拍照”的UIBarButtonItem。当我点击酒吧按钮项目我的相机打开&我拍照。在我的项目中,从相机“使用照片”之后,它将移动到裁剪视图控制器,在从裁剪视图中选择图像后裁剪图像,图像放置在我的收藏夹视图中当前控制器。在裁剪视图中,我有两个按钮使用和取消。我的问题是,当我采取奇怪的2,3或4我收到控制台内存警告,然后应用程序崩溃与警报“应用程序终止,由于内存压力”。我一直在使用这段代码,当我使用UIImagePickerControllerEditedImage
时,如果我使用UIImagePickerControllerOriginalImage
,则会出现内存问题。uiimagepickercontrolleroriginalimage记忆waring
我的问题是提供良好的图像质量,这UIImagePickerControllerOriginalImage
提供了良好的质量,比UIImagePickerControllerEditedImage
。我必须摆脱这种记忆问题的,所以我用这条线[self dismissViewControllerAnimated:YES completion:NULL];
但我不能够清除内存警告。
- (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(296, 350);
picker1.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker1 animated:YES completion:NULL];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
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]];
NSLog(@"source image=%@",cropController.sourceImage);
cropController.resizeableCropArea = self.resizeableCropArea;
cropController.cropSize = self.cropSize;
cropController.delegate = self;
Cancel_Image= cropController.sourceImage;
[self dismissViewControllerAnimated:YES completion:NULL];
[self.navigationController
pushViewController:cropController animated:YES];
}