【问题标题】:Proper release of UIImagePickerControllerUIImagePickerController 的正确释放
【发布时间】:2011-09-09 05:07:55
【问题描述】:

我对此有点困惑,因为我见过太多不同的变体,但不确定哪一个是正确的方法。目前我有:

- (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,但是当我关闭它时只在第二种方法中释放它不是合乎逻辑的吗?

【问题讨论】:

    标签: ios4 uiimageview uiimage uiimagepickercontroller


    【解决方案1】:

    不,因为它在通过presentModelViewController 模态呈现时会被保留。这是您在展示新视图控制器时会发现的常见模式,无论是否模态,自定义视图控制器。这很好:

    - (IBAction)pickImageFromLibrary:(id)sender
    {
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    
        picker.delegate = self;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    
        [self presentModalViewController:picker animated:YES];
    
        [picker release];
    }
    

    【讨论】:

    • 非常感谢。这意味着我不需要在 didFinishPickingMediaWithInfo 中发布一个 :)
    猜你喜欢
    • 2011-05-07
    • 2016-06-24
    • 2014-12-17
    • 2011-06-08
    • 2011-06-01
    • 2010-12-30
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多