UIImagePickerController内存泄漏问题

问题描述 投票:1回答:1

在我的应用程序中,我使用UIImagePickerController来获取照片,视频,从库中选择图像并将它们保存在应用程序文档目录中。如果我们启动相机并拍摄照片/视频,应用程序会在没有任何崩溃日志的情况下终止。对于应用程序中每次启动摄像头,RAM增加都会增加,并且在应用程序终止一段时间之后说“应用程序因内存问题而终止”。我在XCode(10.1)和Instrument工具中观察到了这个内存泄漏。

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 Swift 4.2 iOS版 - 10.2.1设备RAM - 1GB / 2GB设备 - iPad Pro,iPad Mini Memoy - 16GB,64GB,32GB

你能帮忙解决这个问题,并建议一个更好的解决方案

谢谢,

out-of-memory uiimagepickercontroller ios12 swift4.2 xcode10.1
1个回答
0
投票

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

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

App Terminated due to Memory Pressure when using camera in iOS 7

© www.soinside.com 2019 - 2024. All rights reserved.