Swift3 UIImagePickerController在启动后和拍照期间内存泄漏。拍摄100多张照片后导致应用程序崩溃

Swift3 UIImagePickerController在启动后和拍照期间内存泄漏。拍摄100多张照片后导致应用程序崩溃,swift3,memory-leaks,uiimagepickercontroller,Swift3,Memory Leaks,Uiimagepickercontroller,我已经为这个问题挣扎了好几个星期了。我在网上到处搜索,除了这两个外部链接外,没有发现任何与此问题相关的内容: 但是这些都不是使用相同的环境,并且没有实际的解决方案 下面是我启动imagePicker并拍照后使用Xcode 8.3拍摄的仪器屏幕截图: 以下是与imagePicker相关的代码: //initializer on my class var imagePicker = UIImagePickerController() //imagepick

我已经为这个问题挣扎了好几个星期了。我在网上到处搜索,除了这两个外部链接外,没有发现任何与此问题相关的内容:

但是这些都不是使用相同的环境,并且没有实际的解决方案

下面是我启动imagePicker并拍照后使用Xcode 8.3拍摄的仪器屏幕截图:

以下是与imagePicker相关的代码:

      //initializer on my class
      var imagePicker = UIImagePickerController()

      //imagepicker setup on ViewDidLoad()

      imagePicker.delegate = self
      imagePicker.allowsEditing = false
      imagePicker.mediaTypes = [kUTTypeImage as String]

      if UIImagePickerController.isSourceTypeAvailable(.camera) {
          imagePicker.sourceType = .camera

      }
      else {
        print("Sorry this app only supports camera")
      }


      //function to start picker when click on button
      func startPicker(){

        self.present(imagePicker, animated: false, completion: nil)

      }

       //delegate functions

      func imagePickerControllerDidCancel(_ picker: UIImagePickerController)
      {
                imagePicker.dismiss(animated: false, completion: nil)
      }

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

           //display photo on view

           imagePicker.dismiss(animated: false, completion: nil)

      }

这是IOS上的一个bug,还是有办法消除内存泄漏?

我也有这个问题。这似乎是UIImagePickerController中的已知错误

我在这里创建了一个最小的复制应用程序:


我通过使用实现自己的相机控制器解决了这个问题。

我只想指出,从IOS 12开始,这个问题仍然存在,我不得不使用AVFoundation的相机来避免崩溃。使用AVFoundation,我可以拍摄数百张照片,并且不会发生内存泄漏。

并非只有你一个人,我可以使用类似的、最少的代码在iOS 10.3.3和Xcode 8.3.3上重现这一点。“其他进程”内存使用随着每张照片的拍摄而逐渐增加,直到所有系统内存用完,然后应用程序崩溃,出现“连接丢失”消息,应用程序中没有异常(因为泄漏似乎在UIImageViewController代码中)。相关:感谢@davidgoli的链接,我很高兴知道我不是唯一一个。我可以通过在我的应用程序上查看图像来重现这个问题。在拍摄了40-50张照片之后,它就崩溃了。这很烦人,我还在为此挣扎。我在提交了一份bug报告后收到了苹果的回复。他们以副本的形式关闭了我的bug报告,并验证了此问题存在另一个未解决的bug。由于它属于NDA,因此无法在此处链接到原始错误报告。@davidgoli您是如何解决UIImagePickerController的多图像单击问题的?如果我点击了40-50张图片,我将面临iOS 10.3的崩溃。@Mrunal在原始帖子中看到我的链接