我面臨錯誤應用程序因內存壓力而終止當我使用UIImagePickerController相機捕捉某些圖像時。在iOS 7中使用相機時由於內存壓力而終止的應用程序
我先收到內存警告,然後突然應用程序崩潰。這個問題是在iOS 7中,特別是在iOS 6中,它工作正常。
有人知道爲什麼在使用相機的iOS 7中出現此內存問題。
注:我試圖儘量減少RAM的使用,因爲它也可能是這種內存壓力的原因。但仍然受到警告。
我面臨錯誤應用程序因內存壓力而終止當我使用UIImagePickerController相機捕捉某些圖像時。在iOS 7中使用相機時由於內存壓力而終止的應用程序
我先收到內存警告,然後突然應用程序崩潰。這個問題是在iOS 7中,特別是在iOS 6中,它工作正常。
有人知道爲什麼在使用相機的iOS 7中出現此內存問題。
注:我試圖儘量減少RAM的使用,因爲它也可能是這種內存壓力的原因。但仍然受到警告。
我只是在類似的帖子上發佈了這個答案(iOS 7 UIImagePicker preview black screen)。這就是我說的:
大約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];
從我可以告訴,這只是用的UIImagePickerController iOS中的一個問題7.以前的版本似乎是罰款。
使用Instruments中的Allocations工具可以準確查看RAM的使用情況以及分配時間。 – NSAdam
我在iOS 7中也在iPhone 5中進行了測試。它在iPhone 5中工作正常。只有在iPad mini中獲得此警告。 –
這是安靜的問題與ipad mini – Saurabh