【发布时间】:2017-12-09 10:20:13
【问题描述】:
我已经为这个问题苦苦挣扎了好几个星期了。我在网上到处查看,除了这两个外部链接之外,没有发现任何与此问题相关的内容:
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 的乐器截图:
这里是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 上的错误还是有办法摆脱这种内存泄漏?
【问题讨论】:
-
您并不孤单,我可以使用类似的最少代码在 iOS 10.3.3 和 Xcode 8.3.3 上重现这一点。 “其他进程”内存使用量随着每张照片的拍摄而逐渐增加,直到所有系统内存用完,然后应用程序崩溃并显示“丢失连接”消息并且应用程序中没有异常(因为泄漏似乎在 UIImageViewController 代码中)。
-
感谢@davidgoli 的链接,我很高兴知道我不是唯一一个。我可以通过简单地在我的应用程序上显示图像视图来重现此问题。在拍摄 40-50 张照片后,它无论如何都会崩溃。这很烦人,我仍在为此苦苦挣扎。
标签: swift3 memory-leaks uiimagepickercontroller