我有麻烦了。我为我的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)
答案 0 :(得分:1)
在执行代码之前,您必须将注释转换为MyAnnotation
。尝试这样的事情:
for annotation in self.mapView.annotations {
if let annotation = annotation as? MyAnnotation, annotation.identifier == user.id {
self.mapView.removeAnnotation(annotation)
}
}
希望这会有所帮助。