我几周来一直在努力解决这个问题。我已经在网上看到了这个问题,除了这2个局外人链接之外没有发现任何问题:
https://github.com/cordova-plugin-camera-preview/cordova-plugin-camera-preview/issues/200
https://issues.apache.org/jira/browse/CB-11784
但是那些没有使用相同的环境,并且没有实际的解决方案。
这是我启动imagePicker并拍照后立即使用Xcode 8.3的Instrumentals屏幕截图:
以下是与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上的一个错误,还是可以摆脱这个内存泄漏?
答案 0 :(得分:2)
我只想指出,从IOS 12开始,这个问题仍然存在,为了避免崩溃,我不得不使用AVFoundation的Camera。使用AVFoundation,我可以拍摄数百张照片,并且不会发生内存泄漏。
答案 1 :(得分:0)
我也有这个问题。它似乎是UIImagePickerController中的已知错误。
我在这里创建了一个最小的repro应用程序:https://github.com/davidgoli/UIImagePickerLeakTest
我通过使用https://github.com/imaginary-cloud/CameraManager实现我自己的相机控制器解决了这个问题。