我在按钮上打开相机,点击并拍摄uiimage中的图像,然后将uiimage传输到其他视图,但当我这样做4-5次时,我收到内存警告。
以下是我工作过的代码:
-(void)imagePickerController:(UIImagePickerController*)picker_camera didFinishPickingMediaWithInfo:(NSDictionary*)info
{
[picker_camera dismissModalViewControllerAnimated:YES];
UIImage *image=[[UIImage alloc] init];
image=[info objectForKey:@"UIImagePickerControllerOriginalImage"];
[self Methodcall:image];
//Image_camera=image;
// NSAutoreleasePool *apool = [[NSAutoreleasePool alloc] init];
//printf("first\n");
// [self performSelector:@selector(Methodcall) withObject:nil afterDelay:1];
//printf("ok\n");
//[apool release];
}
-(void)Methodcall:(UIImage *)image{
ImageDisplayViewController *ImageDisplayViewController_obj=[[ImageDisplayViewController alloc] initWithNibName:@"ImageDisplayViewController" bundle:nil];
ImageDisplayViewController_obj.image_FRomCamera=image;
NSLog(@"image===>%@ camera==>%@",image,ImageDisplayViewController_obj.image_FRomCamera);
[self.navigationController pushViewController:ImageDisplayViewController_obj animated:YES];
// [ImageDisplayViewController_obj release];
}
-(IBAction)TakePhotoCamera:(id)sender{
@try
{
UIImagePickerController *picker_camera = [[UIImagePickerController alloc] init];
picker_camera.sourceType = UIImagePickerControllerSourceTypeCamera;
picker_camera.delegate = self;
[self presentModalViewController:picker_camera animated:YES];
[picker_camera release];
}
@catch (NSException *exception)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Camera" message:@"Camera is not available " delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[alert release];
}
}有谁能帮帮我吗?
提前谢谢。
发布于 2013-05-03 16:09:08
我假设你没有使用ARC (有什么特别的原因吗?)
objectForKey:@"UIImagePickerControllerOriginalImage";UIImage *image=[UIImage alloc init];image=info alloc init
应更改为:
UIImage *image = info objectForKey:@"UIImagePickerControllerOriginalImage";
ImageDisplayViewController_obj实例:// ImageDisplayViewController_obj发布;
取消此行的注释。
内存管理的黄金法则:总是释放你不再需要的对象,并且不保留任何你不需要的东西。
如果你是Obj-C和/或内存管理的新手,我强烈推荐使用ARC。
其他一些建议:
picker_camera (使用pickerCamera)或ImageDisplayViewController_obj (使用imageController或namehttps://stackoverflow.com/questions/16353949
复制相似问题