使用UIImagePickerController捕获图像时,我遇到了内存问题。我的用例要求我一次最多捕获10个图像,当用户单击相机覆盖中存在的完成按钮时,图像应该被发送到服务器,同时在CollectionView中显示,同时取消UIImagePickerController实例。
在捕获第10张图像时,我手动关闭选择器并将图像发送到服务器并将其显示在collectionView中。由于我有一些图像的阈值计数,我使用数组来保存图像,我每次都清空数组'完成'单击按钮或用户捕获第10个图像。
我最初想过,我遇到了内存问题,因为collectionView显示的图像没有调整大小,因此我调整了图像的大小并显示在collectionView中。
然后在谷歌搜索后,我读到在调整图像大小时可能会发生内存泄漏并且我也修复了它但仍然遇到内存问题,并且每次都在相同的图像数量大约45个图像(捕获10个图像4次和然后在iPad4中第5次拍摄大约5张图像后获得内存警告和崩溃)。然后我在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.
}
答案 0 :(得分:0)
这似乎是iOS 10.3.3中的一个问题...一旦我将旧设备更新到iOS 11,这个问题就不再存在了...下面给出的stackoverflow讨论帮助我理解了这个问题... < / p>