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

Nis*_*agi 9 iphone objective-c uiimagepickercontroller ios ios7

当我使用UIImagePickerController Camera捕获一些图像时,由于内存压力,我面临错误应用终止.

我先收到内存警告然后突然崩溃.这个问题在iOS 7中特别适用于iOS 6,它工作正常.

有人知道为什么在使用相机的iOS 7中会出现此内存问题.

注意:我试图最小化RAM使用率,因为它也可能是这种内存压力的原因.但仍然得到警告.

eck*_*ero 5

我刚刚在类似的帖子上发布了这个答案(iOS 7 UIImagePicker预览黑屏).这就是我说的:

大约5个月前,我的团队发现了UIImagePickerController的内存泄漏.每个实例化都以指数方式减慢app的速度(即第一个alloc-init延迟1秒,第二个延迟2秒,第三个延迟5秒).最终,我们有30-60个延迟(类似于你正在经历的).

我们通过继承UIImagePickerController并使其成为Singleton解决了这个问题.这样它只被初始化一次.现在我们的延迟很小,我们避免泄漏.如果子类化不是一个选项,请在viewController中尝试一个类属性,然后像这样延迟加载它.

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

然后你可以稍后再称它为:

[self presentViewController:self.imagePicker animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

据我所知,这只是iOS 7中UIImagePickerController的一个问题.以前的版本似乎没问题.