我正在使用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];
也有魅力。他们两个都没有在分析仪中泄漏。任何人都指出了正确的方法。
答案 0 :(得分:2)
嗯,这里没什么可说的......两种方法都有效,两种方法都是正确的,可以根据自己的喜好使用。
一个小问题:如果你经常展示图像选择器,你最好使用第一种方法,并将其分配给一个实例变量(它不被称为“类变量”!)仅用于第一种方法时间,并且在- dealloc
之前不要释放它 - 这样,每次用户选择图像时都会保存图像选择器的连续分配 - 释放。