当我使用UIImagePickerController Camera捕获一些图像时,我遇到错误 App因内存压力而终止。
我首先收到内存警告然后突然发生应用程序崩溃。这个问题在iOS 7中特别适用于iOS 6,它工作正常。
有人知道为什么在使用相机的iOS 7中会出现此内存问题。
注意:我尝试将RAM使用率降至最低,因为这也可能是此内存压力的原因。但仍然会收到警告。
答案 0 :(得分:5)
我刚刚在类似帖子(iOS 7 UIImagePicker preview black screen)上发布了这个答案。这就是我说的:
大约5个月前,我的团队发现了UIImagePickerController的内存泄漏。每个实例化都以指数方式减慢app(即第一个alloc-init延迟1秒,第二个延迟2秒,第三个延迟5秒)。最终,我们有30-60次延迟(类似于您所遇到的情况)。
我们通过继承UIImagePickerController并使其成为Singleton解决了这个问题。这样它只被初始化一次。现在我们的延迟很小,我们避免泄漏。如果子类化不是一个选项,请在viewController中尝试一个class属性,然后像这样延迟加载它。
-(UIImagePickerController *)imagePicker{
if(!_imagePicker){
_imagePicker = [[UIImagePickerController alloc]init];
_imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
return _imagePicker;
}
然后你可以稍后再称它为:
[self presentViewController:self.imagePicker animated:YES completion:nil];
据我所知,这只是iOS 7中UIImagePickerController的问题。以前的版本似乎没问题。