Проблема GoogleMaps iOS: mapView.delegate не может быть преобразован в пользовательский класс MapViewDelegate - PullRequest
0 голосов
/ 26 мая 2020

В моем коде у меня есть собственный класс MapViewDelegate, который я создаю и назначаю свойству mapView.delegate. У меня есть отдельный класс, который является viewController типа MapViewController. Этот MapViewController также действует как GMUClusterRendererDelegate и GMUClusterManagerDelegate.

В моем MapViewController у меня есть функция, которая должна получить значение свойства в MapViewDelegate. Для этого я использую следующий код:

    if let mvd = (mapView.delegate as? MapViewDelegate) {
        if let loc = mvd.droppedPin?.position {
            let newPosition = GMSCameraPosition.camera(withLatitude: (loc.latitude), longitude: (loc.longitude), zoom: LOCAL_ZOOM_LEVEL)
            mapView.animate(to: newPosition)
            resetMapTools ()
        }
    }

Приведение mapView.delegate к MapViewDelegate всегда терпит неудачу. Если я заставлю Cra sh в этой строке, я получаю сообщение об ошибке:

Could not cast value of type 'GMUClusterManager' to 'mFood_2.MapViewDelegate'

, и когда я po mapView.delegate, я получаю:

Optional<GMSMapViewDelegate>
  - some : <GMUClusterManager: 0x283d72180>

Как я могу получить это приведение правильно работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...