内存警告 UIImagePickerController

memory warning UIImagePickerController

在使用 UIImagePickerController 捕获图像时,我 运行 遇到了内存问题。我的用例要求我一次最多捕获 10 张图像,当用户单击相机覆盖中的完成按钮时,图像应发送到服务器,同时在关闭 UIImagePickerController 实例时显示在 CollectionView 中.

在捕获第 10 张图像时,我手动关闭了选取器并将图像发送到服务器并将其显示在 collectionView 中。因为我有一些图像的阈值计数,所以我使用数组来保存图像,每次单击 'Done' 按钮或用户捕获第 10 张图像时我都会清空数组。

我最初认为,我 运行 遇到了内存问题,因为 collectionView 显示的图像未调整大小,因此我调整了图像的大小并显示在 collectionView 中。

然后在谷歌搜索后,我了解到调整图像大小时可能会发生内存泄漏,我也修复了它,但我仍然 运行 遇到内存问题并且每次都在大约第 45 张图像的相同图像计数(捕获在iPad4)中第 5 次拍摄大约 5 张图像后,连续 4 次拍摄 10 张图像,然后出现内存警告和崩溃。然后我在 didFinishPickingMediaWithInfo 中评论了我的所有代码,我的应用程序除了捕获图像外没有做任何处理,但我仍然在第 45 张图像周围收到内存警告。

我不知道是什么问题。 UIImagePickerController 是否缓存它捕获的图像或类似的东西?

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
{
    //All code in this section is commented out and no processing is done in any part of the code with the images captured.
}

这似乎是 iOS 10.3.3 中的一个问题......一旦我将我的旧设备更新到 iOS 11,这个问题就不再存在......下面给出的 Whosebug 讨论帮助我理解了问题...