UIImagePicker控制器内存泄漏问题



在我的应用程序中,我正在使用UIImagePickerController来拍摄照片,视频,从图库中选择图像并将它们保存在应用程序文档目录中。如果我们启动相机并拍照/视频,应用程序将开始终止,没有任何崩溃日志。对于应用程序中每次启动相机,RAM 消耗都会增加,一段时间后应用程序会终止,并说"应用程序因内存问题而终止"。我在 XCode(10.1( 和仪器工具中观察到了这种内存泄漏。

func takePhoto() {
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerController.SourceType.camera) {
        self.mediaType = .Photo
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerController.SourceType.camera
        imagePicker.allowsEditing = false
        imagePicker.hidesBarsOnTap = true
        imagePicker.isNavigationBarHidden = true;
        self.present(imagePicker, animated: true, completion: nil)
    }
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    // Local variable inserted by Swift 4.2 migrator.
      let info = convertFromUIImagePickerControllerInfoKeyDictionary(info)
      if let image = info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey.originalImage)] {
                //Writing the image to document directory
      }
        picker.dismiss(animated: true, completion: nil)
}

由 Swift 4.2 迁移器插入的辅助函数。

  fileprivate func convertFromUIImagePickerControllerInfoKeyDictionary(_ input: [UIImagePickerController.InfoKey: Any]) -> [String: Any] {
        return Dictionary(uniqueKeysWithValues: input.map {key, value in (key.rawValue, value)})
    }

由 Swift 4.2 迁移器插入的辅助函数。

fileprivate func convertFromUIImagePickerControllerInfoKey(_ input: UIImagePickerController.InfoKey) -> String {
    return input.rawValue
}

XCode 10.1斯威夫特 4.2iOS 版本 - 10.2.1设备内存 - 1GB/2GB设备 - iPad Pro, iPad Mini备忘录 - 16GB, 64GB, 32GB

您能否对此提供帮助并提出更好的解决方案

谢谢

我遇到了同样的问题并降落在这里。 你解决了问题吗?

很久以前似乎有人有这个。 我试过了,它似乎有帮助:

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

最新更新