每次我加载它的视图时,MKMapView使用大量的内存

我有一个非常简单的应用程序,与几个视图控制器。 在第二个视图控制器中有一个MKMapView。 它设置正确,function正常。 问题是,每次我加载它的视图时,内存使用量跳到〜30mb,并且永远不会回落,所以每次进入视图时,它都会跳跃并最终变得非常高。 我尝试删除地图视图,当我离开控制器像这样:

override func viewWillDisappear(animated: Bool) { map.removeFromSuperview() } 

但对内存没有任何影响。 地图视图委托被设置为其视图控制器。

我试图检查使用Xcode仪器的泄漏,但没有发现任何东西。

有谁知道如何解决这一问题?

谢谢

编辑:添加这似乎工作:

 func removeNastyMapMemory() { map.mapType = MKMapType.Hybrid map.delegate = nil map.removeFromSuperview() map = nil } override func viewWillDisappear(animated: Bool) { removeNastyMapMemory() } 

这不是Swift问题,来自Objective-C的日子。 处理这个问题的可能方法取决于应用的情况和行为。

  1. 如果您多次使用地图(或地点),请仅创build一个(共享)实例。 你可以随时使用它。

  2. 或者如果您只使用一次,请尝试从这里的解决scheme, https://stackoverflow.com/a/25419783/1603234 。 这可能有帮助。 减less一点。 但不是所有的。