Ios4 正确释放UIImagePickerController
我对此有点困惑,因为我看到了太多不同的变体,不确定哪一种是正确的。目前我有:Ios4 正确释放UIImagePickerController,ios4,uiimageview,uiimage,uiimagepickercontroller,Ios4,Uiimageview,Uiimage,Uiimagepickercontroller,我对此有点困惑,因为我看到了太多不同的变体,不确定哪一种是正确的。目前我有: - (IBAction)pickImageFromLibrary:(id)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self; picker.sourceType = UIImagePickerControllerSourceTypeP
- (IBAction)pickImageFromLibrary:(id)sender
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:picker animated:YES];
// [picker release];
}
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0f, 10.0f, 320.0f, 264.0f)];
self.studyView = imageView;
[imageView release];
[self.tableView setTableHeaderView:studyView];
self.fitImage = [ImageHelper image:image fitInView:studyView];
if (picker.sourceType == UIImagePickerControllerSourceTypeCamera)
{
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}
studyView.image = self.fitImage;
[self dismissModalViewControllerAnimated:YES];
[picker release];
}
我在第一种方法中分配了
UIImagePickerController
,但在第二种方法中,当我关闭它时,只释放它不是合乎逻辑的吗?否,因为它在通过presentModelViewController
以模式显示时被保留。这是在显示新视图控制器时常见的模式,无论是模式视图控制器还是自定义视图控制器。这很好:
- (IBAction)pickImageFromLibrary:(id)sender
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentModalViewController:picker animated:YES];
[picker release];
}
很酷,谢谢。这意味着我不需要didFinishPickingMediaWithInfo one中的版本:)