Остановить iOS 7 MKMapView от утечки памяти



0 Answers

Быстрая версия:

override func viewWillDisappear(_ animated:Bool) {
    super.viewWillDisappear(animated)
    self.applyMapViewMemoryFix()
}

func applyMapViewMemoryFix() {
    switch (self.mapView.mapType) {
    case MKMapType.hybrid:
        self.mapView.mapType = MKMapType.standard
    case MKMapType.standard:
        self.mapView.mapType = MKMapType.hybrid
    default:
        break
    }
    self.mapView.showsUserLocation = false
    self.mapView.delegate = nil
    self.mapView.removeFromSuperview()
    self.mapView = nil
}
Question

Я заметил, что мое приложение теряет память, но если я возьму MKMapView , проблема с памятью исчезнет.

Чтобы проверить теорию, я сделал простой проект, который имеет представление, которое подталкивает представление с помощью MKMapView в нем и выскакивает и толкает. Больше ничего. Никакого кода в контроллерах просмотра, все, что сделано через раскадровку.

Если я перехожу назад и вперед к виду карты, он начинается примерно с 3 МБ после того, как вы нажимаете и выталкиваете представление с картой в нем, примерно в 15 раз память составляет около 230 МБ.

Кто-нибудь еще видел это? Кажется, это довольно большая ошибка. Есть ли другой способ использования MKMapView , который предотвратит его утечку?




Related