在iPhone中使用uiimagepickercontroller的最佳方法?

时间:2012-10-30 07:50:24

标签: iphone ios ipad

我正在使用UIImagePickerController从我的应用程序中的PhotoLibrary中选择图像。我已经使用了两种不同的方法。起初我使用了类变量UIImagePicker和下面的代码。

     imagepicker = [[UIImagePickerController alloc]init];
     imagepicker.delegate = self;
     imagepicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
     imagepicker.modalTransitionStyle = UIModalTransitionStylePartialCurl;
     [self presentModalViewController:self.imagepicker animated:YES];

上面的代码工作正常。但是当我点击按钮时,在这种情况下需要一些时间来对动画做出反应。然后我用这种方法使用自动释放池方法

    NSAutoreleasePool *pool;
    pool = [[NSAutoreleasePool alloc] init]; 
    if([UIImagePickerController isSourceTypeAvailable:
        UIImagePickerControllerSourceTypePhotoLibrary])
    {
        UIImagePickerController *picker= [[[UIImagePickerController alloc]init]autorelease];
        picker.delegate = self;
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        picker.modalTransitionStyle = UIModalTransitionStylePartialCurl;
        [self presentModalViewController:picker animated:YES];

    }
    [pool release];

也有魅力。他们两个都没有在分析仪中泄漏。任何人都指出了正确的方法。

1 个答案:

答案 0 :(得分:2)

嗯,这里没什么可说的......两种方法都有效,两种方法都是正确的,可以根据自己的喜好使用。

一个小问题:如果你经常展示图像选择器,你最好使用第一种方法,并将其分配给一个实例变量(它不被称为“类变量”!)仅用于第一种方法时间,并且在- dealloc之前不要释放它 - 这样,每次用户选择图像时都会保存图像选择器的连续分配 - 释放。