На самом деле это то, что вы хотите сделать:
restaurants.forEach { placeOnMap in
let place = MKPointAnnotation()
place.coordinate = CLLocationCoordinate2D(latitude: placeOnMap.latitude, longitude: placeOnMap.longitude)
place.title = placeOnMap.name
mapView.addAnnotation(place)
}
Как упоминалось @matt в разделе комментариев, restaurant - это массив PlacesOnMap
. Ваша цель - добавить эти места на карту, поэтому вам нужно преобразовать каждое из этих мест в экземпляр CLLocationCoordinate2D
, а затем добавить его на карту.
В качестве альтернативы вы можете сделать это следующим образом:
let places = restaurants.map { placeOnMap -> MKPointAnnotation in
let place = MKPointAnnotation()
place.coordinate = CLLocationCoordinate2D(latitude: placeOnMap.latitude, longitude: placeOnMap.longitude)
place.title = placeOnMap.name
return place
}
mapView.addAnnotations(places)
В этом примере вы отображаете массив ресторанов, который у вас есть, в массив из MKPointAnnotation
экземпляров, а затем просто передаете этот массив в mapView
.