Ios 从相机捕获图像时内存泄漏

Ios 从相机捕获图像时内存泄漏,ios,swift,memory-leaks,uiimagepickercontroller,Ios,Swift,Memory Leaks,Uiimagepickercontroller,在我的应用程序中发生了一个奇怪的问题,问题是当我尝试从相机捕获图像时,就像使用相机捕获的4-5个图像一样。仪器中显示内存泄漏 由于内存泄漏,如果我将应用程序放在后台并锁定屏幕,iphone将重新启动 请检查泄漏信息的屏幕截图 我用一个简单的选择器从相机中捕捉图像,然后将其丢弃。那为什么会有这个漏洞呢 let picker = UIImagePickerController() picker.delegate = self picker.allowsEditing = false pic

在我的应用程序中发生了一个奇怪的问题,问题是当我尝试从相机捕获图像时,就像使用相机捕获的4-5个图像一样。仪器中显示内存泄漏

由于内存泄漏,如果我将应用程序放在后台并锁定屏幕,iphone将重新启动

请检查泄漏信息的屏幕截图

我用一个简单的选择器从相机中捕捉图像,然后将其丢弃。那为什么会有这个漏洞呢

let picker = UIImagePickerController()

 picker.delegate = self
 picker.allowsEditing = false

 picker.sourceType = .camera
 self.present(picker, animated: true)



public func imagePickerController(_ picker: UIImagePickerController,
                                  didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
    if let image = info[.originalImage] as? UIImage {
        processSelectedImage(image: image)
    }
    picker.dismiss(animated: true, completion: nil)
}

这是由于您的设备内存不足,并且应用程序中正在运行许多其他进程,请尝试清理设备,然后重试


更好的方法是重新启动您的设备并再次运行。

向我们显示此漏洞的内存图我已更新了一些详细信息请检查,在从相机拍摄图像并将其保存到临时内存后,手机会占用约123mb的内存,如图所示相同?问题是你的手机。事实上,我能够调试这个问题,我猜问题在于uipicker摄像头代码,我创建了一个示例,在该示例中显示内存泄漏,在这里,我只是打开相机并关闭它,但仍然显示内存泄漏。当您在临时内存中保存图像时,您需要减小图像大小并将其保存在临时内存中,如:
let mydata=uiimagejpegresentation(image,0.5)
这可以帮助您保存内存。是的,之前我将其转换为0.8,但是,即使我对picker delegate方法中的所有代码都进行了注释,我只是捕获了图像并取消了视图,但它仍然显示内存泄漏,我创建了一个新的示例项目,并在相机代码中显示内存泄漏我已经尝试了您的代码,它在iPhone XR中运行良好。内存问题是由于您的设备造成的,您能告诉我您正在使用哪个设备进行测试吗?