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



我有一个非常简单的应用程序,有几个视图控制器。第二个视图控制器中有一个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. 如果您多次(或多次)使用Map,请只创建它的一个(共享)实例。您可以随时使用它。

  2. 或者,如果你只使用过一次,那么试试这里的解决方案,https://stackoverflow.com/a/25419783/1603234.这可能会有所帮助。减少一点。但不是全部。

最新更新