iPhone中UIImagePickerController的内存泄漏问题

我在UIImagePicker上使用以下代码,

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; imagePicker.delegate = self; [self presentModalViewController:imagePicker animated:YES]; [imagePicker release]; 

当我运行仪器时,我在代码的第一行看到内存泄漏。 虽然我正在释放它,但仍显示内存泄漏,有没有人知道我哪里出错了。

我从iPhone开发者示例代码帮助安装了iPhoneCoreDataRecipes应用程序,它遇到了同样的问题。

我自己也见过这个。 我认为这是Apple代码中的问题,我通过保留UIImagePickerController的单个实例并根据需要重新使用它来“解决”它。 否则,我的应用程序将在UIImagePickerController的20个左右实例化之后耗尽内存。

我认为这是苹果代码中的一个错误。 当你显示一个图像选择器控制器时,他们似乎没有正确释放一些小东西,即使你明确释放了选择器。

我相信Apple建议使用UIImagePicker作为单例,这意味着在整个程序运行时只有一个控制器实例。 如果您考虑一下,您只需要一个实例,因为可以使用相同的控制器多次挑选或拍照。 UIImagePickerController似乎是内存密集型的,因此初始化多个实例可能会导致内存警告,如果您没有考虑到这一点,可能会释放其他视图并导致问题。