【问题标题】:Print UserData for specific key when a marker is tapped点击标记时打印特定键的用户数据
【发布时间】:2020-07-18 03:06:38
【问题描述】:

我添加了一个标记

var marker:  GMSMarker?
let position = CLLocationCoordinate2D(latitude: 38.890106, longitude: -77.007362)
marker = GMSMarker(position: position)
var data = Dictionary<String, Any>()
data["type"] = "Mark1" as String
marker?.userData = data
marker?.map = self.map

现在在func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -&gt; Bool { 中,我想获取 `["type"] 值,并且当我这样做时:

    if marker.userData["type"] == "Mark1" {
        print("It's Marker type 1")
    }

我得到错误:

'Any' 类型的值没有下标

我已经搜索堆栈溢出,上面的错误与我的问题无关,因为它与地点无关。

更新 如果我只是打印:print(marker.userData!) 我得到:

{
    type = Mark1;
}

但我无法读取 If 条件中的类型。

【问题讨论】:

    标签: swift google-maps-markers gmsmapview


    【解决方案1】:

    试试这个

       func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool {
    
    
        guard let data = marker.userData as? [String:Any] else{return false}
        guard let type = data["type"] as? String else{return false}
        if type == "Mark1"  {
            print("It's Marker type 1")
        }
        return true
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多