В моем коде у меня есть собственный класс 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>
Как я могу получить это приведение правильно работать?