Проблема с утечкой памяти UIImagePickerController

В своем приложении я использую UIImagePickerController для съемки фотографий, видео, выбора изображений из галереи и сохранения их в каталоге документов приложения. Если мы запустим камеру и сделаем фото / видео, приложение начнет завершаться без аварийного журнала. При каждом запуске камеры в приложении потребление ОЗУ увеличивается, и через некоторое время приложение завершает работу со словами «Приложение завершено из-за проблемы с памятью». Я наблюдал эту утечку памяти в 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 - 1 ГБ / 2 ГБ Устройства - iPad Pro, iPad Mini Memoy - 16 ГБ, 64 ГБ, 32 ГБ

Не могли бы вы помочь с этим и предложить лучшее решение

Спасибо,


person Sudhakar Tharigoppula    schedule 16.04.2019    source источник


Ответы (1)


У меня такая же проблема, и я приземлился здесь. Вы уже решили проблему?

кажется, у кого-то это было давным-давно. Я пробовал и вроде помогает:

Приложение закрывается из-за нехватки памяти при использовании камеры в iOS 7

person Sean    schedule 27.04.2019