如何在所有项目中共享 1 个 MapView Swift 5

How to Share 1 MapView in all Project Swift 5

我想知道是否可以在整个项目中共享同一个 MKMapView 变量。 由于创建多个实例会大大增加内存。 一旦我打开一个只有 MapView 的新 view controller,它就会增加 50Mb 的内存。当我关闭该视图控制器时,它只下降了大约 10Mb。

可以释放地图视图的所有内存吗?。还是创建单个 MapView 变量并执行 removeAnnotations 来创建注释更好...每次更改地图视图

var mapview = MKMapView()

解雇时viewcontroller我这样做:(我不知道是否还需要其他任何东西。)

mapView.removeAnnotations(AllAnnotations)
mapView.delegate = nil
mapView.removeFromSuperview()

是的,创建很多项目会导致内存变高,即使调用 deinit 也是如此,因此您制作了 1 个全局地图

import MapKit 
let map = MKMapView(frame:CGRect.zero)

当您需要在 vc 中显示它时,将其添加到带有约束的视图中,并在离开后将其删除