关于MKMapView内存问题,App崩溃了

时间:2017-10-22 16:29:35

标签: ios xcode memory mkmapview viewcontroller

我一直在开发一款能够完美运行的应用,直到我添加了MKMapView。如果我在地图中导航更广泛的区域,使用地图关闭视图控制器并添加新的视图控制器,应用程序将崩溃Xcode说"丢失与iPhone的连接"。

我在线搜索过,发现它应该是一个内存问题。所以我用了很多方法来清理MKMapView的内存,包括只在AppDelegate中存储一个MKMapView实例并在ViewDidDisappear之后清理它:

    if let annotations = self.mapView?.annotations {
        self.mapView?.removeAnnotations(annotations)
    }

    if self.mapView?.mapType == MKMapType.standard {
        self.mapView?.mapType = MKMapType.hybrid
    } else if self.mapView?.mapType == MKMapType.hybrid {
        self.mapView?.mapType = MKMapType.standard
    }

    self.mapView?.delegate = nil
    self.mapView?.removeFromSuperview()
    self.mapView = nil

更奇怪的是,当我跟踪内存使用情况时,在地图中,内存使用量可以达到300 + mb,并且在探索更多内容时似乎会自行清理。但是,在我解除视图控制器之后会有大约200mb左右,而当我只用一个UIIMageView添加另一个简单的VC时,它会在" Lost Connection"事情。

我是内存管理的新手,但我在这里有一个关于仪器配置文件的截图:

instrument profile

就像在图像中一样。 A代是我用MKMapView呈现视图控制器的点,而代B是解除该视图的点。内存使用率明显下降,这很好。但是,只要我点击呈现不同的视图控制器,就会像在Xcode中一样断开连接。

我已经对此做了大量研究,我现在还不知道该怎么做。谢谢,如果你们能帮帮我!!!!

1 个答案:

答案 0 :(得分:2)

我切换到Google地图后修复了问题...