我正在开发一个项目,我需要 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/