swift - 谷歌地图内存问题

标签 swift google-maps memory google-maps-sdk-ios gmsmapview

我正在开发一个项目,我需要 ViewController 显示 Google map 来指示 Property 的位置,以及许多其他对象(例如 TableView 和 Collection View )以在同一 View Controller 上显示 JSON 数据。

问题:这个 ViewController 占用了大约 72 MB 的内存,当我调试代码以检查它占用大量内存的原因时,我发现 Google map 就是原因所在。如果我删除了 Google map ,那么它只占用了 15 MB 的空间,但是,我创建了其他 View Controller ,其中我只占用了 UIView 并为其指定了 GMSMapView 类型,当我运行代码时,它占用了近 70 MB 的内存。

这是谷歌地图的正常行为吗?因为我没有编写任何代码,只是将 GMSMapView 类型分配给 UIView,并且它占用了大量内存。

我需要一个解决方案来减少这个内存问题。有人可以建议我们如何在 Google map 的情况下做到这一点吗?

请注意:我没有为 Google MapView 编写任何代码,只是将 GMSMapView 类型分配给 UIView,并将内存跳转到接近 70 MB 及以上。

最佳答案

我在我的应用程序(在线出租车应用程序)中使用了它,我认为这是正常的,但是为了减少内存使用量,您可以在 viewController didDisappear 时删除 GMSMapView

override func viewDidDisappear(_ animated: Bool) {
        mapView.clear()
        mapView.removeFromSuperview()
        mapView = nil
       }

它会导致您的应用使用更少的内存

关于swift - 谷歌地图内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52196680/

相关文章:

C#/XNA - 将对象加载到内存 - 它是如何工作的?

ios - Swift 中的自调整单元格大小,如何以编程方式进行约束?

ios - UITableViewCell textLabel 在选择时改变位置

google-maps - 在谷歌地图全屏中时 select2 不起作用

javascript - 禁止 Angularjs 路线更改时谷歌地图重新加载

python - 有什么方法可以调整python 3列表的大小吗?

C++ 指针和指针在内存分配方面的身份

uitableview - 在 Swift 的 UITableViewController 中搜索显示 Controller 错误

iOS xib文件差异对比

javascript - JQuery UI map 搜索不起作用