每次我加载它的视图时,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的日子。 处理这个问题的可能方法取决于应用的情况和行为。
-
如果您多次使用地图(或地点),请仅创build一个(共享)实例。 你可以随时使用它。
-
或者如果您只使用一次,请尝试从这里的解决scheme, https://stackoverflow.com/a/25419783/1603234 。 这可能有帮助。 减less一点。 但不是所有的。