Проблемы утечки памяти в функции ImagePickerController - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в программировании в целом, и у меня возникли проблемы с утечкой памяти из-за следующего кода, специально связанного с «imagePickerController». Утечки происходят только после того, как UIimagePickerController закрывается после выбора изображения. Спасибо за любую помощь, исправляющую это.

let imagePicked = UIImagePickerController()

 @IBAction func addPhoto(_ sender: UIBarButtonItem) {
   let pickerController = UIImagePickerController()
    pickerController.delegate = self
    pickerController.allowsEditing = false

    imagePicked.delegate = self

    let alertController = UIAlertController(title: "Add New Image", message: "Choose From", preferredStyle: .actionSheet)

    let cameraAction = UIAlertAction(title: "Camera", style: .default) { (action) in
        pickerController.sourceType = .camera
        self.present(pickerController, animated: true, completion: nil)
    }

    let photosLibraryAction = UIAlertAction(title: "Photos Library", style: .default) { (action) in
        pickerController.sourceType = .photoLibrary
        self.present(pickerController, animated: true, completion: nil)
    }

    let cancelAction = UIAlertAction(title: "Cancel", style: .destructive, handler: nil)


    alertController.addAction(cameraAction)
    alertController.addAction(photosLibraryAction)
    alertController.addAction(cancelAction)

    present(alertController, animated: true, completion: nil)


}



@objc func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
        var newImageView = UIImageView()
        newImageView = UIImageView(image: image)
        newImageView.contentMode = .scaleAspectFit
        newImageView.center = textView.center

        textView.addSubview(newImageView)

    }
    dismiss(animated: true, completion: nil)


}

РЕДАКТИРОВАТЬ ОДИН:

Спасибо, я удалил @objc перед didFinishPickingMediaWithInfo, а также дополнительным UIImagePickerController объектом, но у меня все еще остается та же проблема. Я также попытался picker.dismiss(animated: true, completion: nil), но это все еще не решает проблему.

И да, я почти уверен, что это ошибка утечки памяти, поскольку я запустил тестер и после помещения изображений в приложение из библиотеки фотографий или с камеры я получаю следующее: картинка 1 изображение 2

Также после добавления нескольких картинок приложение вылетает с сообщением «Прервано из-за проблем с памятью»

...