从地图删除注释-Swift

时间:2019-06-28 18:14:47

标签: swift mapkit mkannotation

我有麻烦了。我为我的MKPointAnnotation创建了一个自定义类,其中包含“标识符”。

现在,我想比较标识符,如果两个标识符都相同,我想删除注释。

目前,我有这段代码正在检查批注.title和user.username是否相同,但是,我希望通过以下方式对其进行更改:批注.identifier和user.id。

 for annotation in self.mapView.annotations {
                    if let title = annotation.title, title == user.username {
                        self.mapView.removeAnnotation(annotation)
                    }

                }

注释的自定义类如下:

   class MyAnnotation: MKPointAnnotation {

    var identifier: String!
}

并用于创建注释:

let annotation = MyAnnotation()
                    annotation.title = user.username
                    annotation.subtitle = user.job
                    annotation.identifier = user.email
                    annotation.coordinate = CLLocationCoordinate2D(latitude: (Double(user.latitude ?? "0"))!, longitude: (Double(user.longitude ?? "0"))!)

                    self.mapView.addAnnotation(annotation)

1 个答案:

答案 0 :(得分:1)

在执行代码之前,您必须将注释转换为MyAnnotation。尝试这样的事情:


 for annotation in self.mapView.annotations {
      if let annotation = annotation as? MyAnnotation, annotation.identifier == user.id {
          self.mapView.removeAnnotation(annotation)
      }
 }

希望这会有所帮助。