在iOS 7中使用相机时,应用程序因内存压力而终止

当我使用UIImagePickerController Camera捕捉一些图像时, 由于内存压力 ,我面临着错误的应用程序终止

我先收到内存警告,然后突然应用程序崩溃。 这个问题是在iOS 7中,特别是在iOS 6中,它工作正常。

有人知道为什么这个内存问题发生在使用相机的iOS 7中。

注:我试图最大限度地减lessRAM的使用,因为它也可能是这个内存压力的原因。 但仍然受到警告。

我只是在类似的post( iOS 7 UIImagePicker预览黑屏 )上发布了这个答案。 以下是我所说的:

大约5个月前,我的团队使用UIImagePickerController发现了内存泄漏。 每个实例都会以指数forms减慢应用程序(即第一个alloc-init有1秒的延迟,第二个有2秒的延迟,第三个有5秒的延迟)。 最后,我们有30-60个延迟(类似于你正在经历的)。

我们通过inheritanceUIImagePickerController并使其成为一个Singleton来解决问题。 这样,它只被初始化一次。 现在我们的延迟是最小的,我们避免了泄漏。 如果子类不是一个选项,在你的viewController中尝试一个类属性,只是像这样懒加载它。

-(UIImagePickerController *)imagePicker{ if(!_imagePicker){ _imagePicker = [[UIImagePickerController alloc]init]; _imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; } return _imagePicker; } 

那么你可以稍后调用它:

 [self presentViewController:self.imagePicker animated:YES completion:nil]; 

从我可以告诉,这只是在iOS 7中的UIImagePickerController问题。以前的版本似乎没有问题。