Я использую 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, любая помощь будет признательна!