I am trying to add annotations to my map. I have an array of points with coordinates inside. I am trying to add annotations from those coordinates.
I have this defined:
var points: [CLLocationCoordinate2D] = [CLLocationCoordinate2D]()
let annotation = MKPointAnnotation()
points has coordinates inside. I checked. And I do this:
for index in 0...points.count-1 {
annotation.coordinate = points[index]
annotation.title = "Point \(index+1)"
map.addAnnotation(annotation)
}
It keeps adding only the last annotation... Instead of all of them. Why is this? By the way, is there a way to delete a specified annotation, by title for example?
Each annotation needs to be a new instance, you are using only one instance and overriding its coordinates. So change your code:
for index in 0...points.count-1 {
let annotation = MKPointAnnotation() // <-- new instance here
annotation.coordinate = points[index]
annotation.title = "Point \(index+1)"
map.addAnnotation(annotation)
}