iOS Google Maps SDK Управление памятью / Утечка памяти - PullRequest
0 голосов
/ 11 февраля 2020

Я использую iOS Карты Google в своем приложении. В последнее время я искал утечки памяти, когда заметил, что Память начала всплывать всякий раз, когда я уменьшал масштаб. И на симуляторе, и на моем настоящем iPhone X устройстве такие всплески памяти возникают при уменьшении масштаба. Я также уменьшаю масштаб, потому что я использую функцию кластеризации маркеров.

Я провел некоторые исследования по различным способам обнаружения утечек памяти, таким как включение звуковых действий на точках останова и поиск в дереве Backtrace надежных ссылок. Кажется, что при настройке моего GMSMapView есть сильная ссылка (код ниже).

func configureMapView() {
    guard let location = locationManager.location else { return }
    let camera = GMSCameraPosition.camera(withLatitude: location.coordinate.latitude, longitude: location.coordinate.longitude, zoom: 16.5)
    mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    mapView.isMyLocationEnabled         = true
    mapView.settings.compassButton      = true
    mapView.settings.rotateGestures     = false
    mapView.settings.tiltGestures       = false
    view = mapView
}

XCode указывает на эту строку, которая имеет сильную ссылку.

mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)

Это убедительная причина, почему использование памяти увеличивается при уменьшении масштаба? Кроме того, не совсем уверен, как исправить эту сильную ссылку с Google Maps, любая помощь будет признательна!

...