Добрый день.
Необходимо отображать данные объекта в небольшом инфобоксе внизу.
Вот что я делаю сейчас:
1. Подписалась на слушателя YMKMapObjectTapListener
2. Добавила слушателя к своим mapObjects
override func viewDidLoad() {
super.viewDidLoad()
let mapObjects = mapView.mapWindow.map.mapObjects
mapObjects.addTapListener(with: self)
}
3. В делегат методе пытаюсь получить данные mapObject, которые типа Any? и всегда nil
class AddressesViewController: UIViewController, YMKMapObjectTapListener {
func onMapObjectTap(with mapObject: YMKMapObject, point: YMKPoint) -> Bool {
guard let placemark = mapObject as? YMKPlacemarkMapObject else { return false }
let data = placemark.userData
print(data)
return true
}
Проблемы:
а) Как получать данные объекта правильно?
б) Делегат метод
onMapObjectTap(with mapObject: YMKMapObject, point: YMKPoint)
вызывается не всегда, надо несколько раз кликнуть, чтобы попасть, тем временем в логах постоянно высвечиваются сообщения типа "No 'name' attribute in object 1923987 in layer mapj".
Никаких других слушателей у меня не добавлено, тогда в чем же проблема?
Буду очень рада помощи!