Когда я коснулся действительно, коснулся маркера, он дает мне текущий маркер, но когда добавляется новый маркер, он не добавляет его, он добавляет его после добавления нового ребенка.
func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
DispatchQueue.main.async(execute: {
self.infoWindow.removeFromSuperview()
self.locationMarker = nil
self.locationMarker = marker
var markerData: NSDictionary?
if let data = marker.userData! as? NSDictionary {
markerData = data
}
print(markerData as Any)
self.infoWindow.markData = markerData
self.infoWindow = self.loadNiB()
if let keyData = markerData?["key"] {
self.keyDataStored = keyData
markerData = nil
}
guard let location = self.locationMarker?.position else {
print("locationMarker is nil")
return
}
self.infoWindow.center = mapView.projection.point(for: location)
self.infoWindow.center.y = self.infoWindow.center.y - self.sizeForOffset(view: self.infoWindow)
UIView.transition(with: self.view, duration: 0.25, options: [.transitionCrossDissolve], animations: {
self.view.addSubview(self.infoWindow)
}, completion: nil)
return false
}
результат печати (markerData as Any) равен
Optional({
Vote = 0;
key = "-LVIje0829RH0EkwUuiz";
latitude = "37.33233141";
longitude = "-122.0312186";
})
для старого потомка
, но если я добавил нового потомка, давайте пометим его xchildрезультат будет
Optional({
latitude = "37.49707671";
longitude = "-122.31324792";
})
, если я снова добавлю нового потомка, скажем, это ychild, xchild будет обновлен и станет
Optional({
Vote = 0;
key = "-LVICnM6l5TMdsqkpP70";
latitude = "37.49707671";
longitude = "-122.31324792";
})
, и ychild будет пропускать голосование и ключ додобавлен новый