我正在为UIImagePicker使用以下代码,
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
当我运行仪器时,我在代码的第一行看到内存泄漏。虽然我正在发布它,但仍显示内存泄漏,有没有人知道我哪里出错了。
我从iPhone开发者示例代码帮助中安装了iPhoneCoreDataRecipes应用程序,它遇到了同样的问题。
答案 0 :(得分:1)
我认为这是苹果代码中的一个错误。当你显示一个图像选择器控制器时,他们似乎没有正确释放一些小东西,即使你明确释放了选择器。
答案 1 :(得分:1)
我自己也见过这个。我认为这是Apple代码中的一个问题,我通过保留UIImagePickerController的单个实例并根据需要重新使用它来“解决”它。否则,我的应用程序将在UIImagePickerController的20个左右实例化后耗尽内存。
答案 2 :(得分:1)
我相信Apple建议使用UIImagePicker作为单例,这意味着在整个程序运行时只有一个控制器实例。如果你考虑一下,你只需要一个实例,因为同一个控制器可以用来多次挑选或拍照。 UIImagePickerController似乎是内存密集型的,因此初始化多个实例可能会导致内存警告,如果您没有考虑到这一点,可能会释放其他视图并导致问题。