我正在做一个项目,我需要ViewController显示Google地图以指示属性的位置以及许多其他对象(如表视图和集合视图(以在同一视图控制器上显示JSON数据。
问题:这个视图控制器占用的内存接近72 MB,当我调试代码以检查为什么它占用大量内存时,我观察到谷歌地图是原因。如果我删除了谷歌地图,那么它只需要 15 MB 的空间,但是,我创建了另一个视图控制器,其中我只使用了 UIView 并给了它类型 GMSMapView,当我运行代码时,它占用了近 70 MB 的内存。
这是谷歌地图的正常行为吗?由于我没有编写任何代码,因此只是将GMSMapView类型分配给UIView,因此占用了大量内存。
我需要一个解决方案来减少这个内存问题。谁能建议我们如何在谷歌地图的情况下做到这一点?
请注意:我没有为Google MapView编写任何代码,只是将GMSMapView类型分配给UIView,内存跳转到接近70 MB及以上。
我用了我的应用程序(在线出租车应用程序(,我认为这是正常的,但为了减少内存使用量,您可以在视图控制器消失时删除 GMSMapView
override func viewDidDisappear(_ animated: Bool) {
mapView.clear()
mapView.removeFromSuperview()
mapView = nil
}
它会导致你的应用使用更少的内存