Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIImagePickerController在从Appdelegate声明后仍存在问题_Iphone_Objective C_Memory Leaks_Uiimagepickercontroller - Fatal编程技术网

Iphone UIImagePickerController在从Appdelegate声明后仍存在问题

Iphone UIImagePickerController在从Appdelegate声明后仍存在问题,iphone,objective-c,memory-leaks,uiimagepickercontroller,Iphone,Objective C,Memory Leaks,Uiimagepickercontroller,我们正在做一个使用UIImagePickerController的照片应用程序。为了只维护控制器的一个实例,我们在appdelegate中声明了它。但即使这样做了,内存泄漏仍然存在。有人能帮我们吗 这是我们的密码 在AppDelegate.h中 UIImagePickerController *imagePicker; @property (nonatomic, retain) UIImagePickerController *imagePicker; 在AppDelegate.m中 @syn

我们正在做一个使用UIImagePickerController的照片应用程序。为了只维护控制器的一个实例,我们在appdelegate中声明了它。但即使这样做了,内存泄漏仍然存在。有人能帮我们吗
这是我们的密码

在AppDelegate.h中

UIImagePickerController *imagePicker;
@property (nonatomic, retain) UIImagePickerController *imagePicker;
在AppDelegate.m中

@synthesize imagePicker;
以及在ApplicationIDFinishLaunching事件中

imagePicker = [[[UIImagePickerController alloc] init] autorelease];
需要在CameraView中调用此UIImagePicker

在喀麦隆

RedDawnMediaAppDelegate *appDel;
@property (nonatomic, retain) RedDawnMediaAppDelegate *appDel;
在喀麦隆

@synthesize appDel;
在viewDidLoad中

appDel=(RedDawnMediaAppDelegate*)[[UIApplication sharedApplication] delegate];

appDel.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
// Hide the camera controls:
appDel.imagePicker.showsCameraControls = NO;
appDel.imagePicker.navigationBarHidden = YES;
appDel.imagePicker.delegate = self;

// Make the view full screen:
appDel.imagePicker.wantsFullScreenLayout = YES;
appDel.imagePicker.cameraViewTransform =       CGAffineTransformScale(appDel.imagePicker.cameraViewTransform, CAMERA_TRANSFORM_X, CAMERA_TRANSFORM_Y);

// Now incert our overlay view (it has to be here cuz it's a modal view):
appDel.imagePicker.cameraOverlayView = overlayView;

[self presentModalViewController:appDel.imagePicker animated:YES];
在didFinishPickingMediaWithInfo中

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

[appDelegate.imagePicker dismissModalViewControllerAnimated:YES];

uploadImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
[uploadImage retain];
NSData *imageData = UIImageJPEGRepresentation(uploadImage, 0.5);
//[uploadImage release];
UIImage *image=[UIImage imageWithData:imageData];


self.view.frame = CGRectMake(0, 0, 320, 480);
self.wantsFullScreenLayout = YES;
objCameraImageView = [[CameraImageView alloc] initWithNibName:@"CameraImageView" bundle:[NSBundle mainBundle]];
[objCameraImageView setParentController:self];
objCameraImageView.cameraImage = image;
[image release];
uploadImage = nil;
[self.view addSubview:objCameraImageView.view];
[self release];
}

拍照后,我们将在另一个视图中显示预览。因此,我们多次调用Cameraview,这会导致内存泄漏。请帮助。

首先,您不必担心只维护imagepickercontroller的一个实例。从相机中获取图像比你正在做的事情要简单得多

请看我的帖子:

因为我在完成图像后释放了选择器。不会有内存泄漏