我面临错误应用程序因内存压力而终止当我使用 UIImagePickerController Camera 捕获一些图像时。
我首先收到内存警告,然后应用程序突然崩溃。这个问题在 iOS 7 中特别明显,在 iOS 6 中它工作得很好。
有人知道为什么 iOS 7 使用相机时会出现这个内存问题吗?
Note:我尝试尽量减少 RAM 使用量,因为这也可能是内存压力的原因。但仍然收到警告。
我刚刚在类似的帖子上发布了这个答案(iOS 7 UIImagePicker预览黑屏)。我是这样说的:
大约 5 个月前,我的团队发现 UIImagePickerController 存在内存泄漏。每个实例化都会以指数方式减慢应用程序的速度(即第一个 alloc-init 有 1 秒的延迟,第二个有 2 秒的延迟,第三个有 5 秒的延迟)。最终,我们出现了 30-60 次延误(与您遇到的情况类似)。
我们通过子类化 UIImagePickerController 并将其设为 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 的问题。以前的版本似乎没问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)