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

MKMapView using a lot of memory each time i load its view

我有一个非常简单的应用程序,有几个视图控制器。第二个视图控制器中有一个 MKMapView。它设置正确,运行良好。问题是,每次我加载它的视图时,内存使用量都会跳跃 ~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. 如果您多次(或多次)使用地图,请只创建它的一个(共享)实例。您可以随时使用它。

  2. 或者,如果您只使用一次,请尝试此处的解决方案,。这可能会有所帮助。减少一点。但不是全部。