-1

I have a tappable MapAnnotation and whenever I try to customize the "look" of the annotation pin, I get the following error:

Initializer 'init(coordinateRegion:interactionModes:showsUserLocation:userTrackingMode:annotationItems:annotationContent:)' requires that 'NavigationLink<PlaceAnnotationView, LocationDetailsView>' conform to 'MapAnnotationProtocol'

Annotation is defined by this:

struct Annotation: Codable, Identifiable, Hashable {
    @DocumentID var id: String?
    let lat: String?
    let lng: String?
    var name: String
}

And the Map is defined by this:

Map(coordinateRegion: $region, annotationItems: annotations) { place in
    NavigationLink {
        LocationDetailsView(place: place.name)
    } label: {
        PlaceAnnotationView(title: place.name)
    }
}

Have I forgotten to define something? Please let me know. Thanks.

SwiftX
  • 78
  • 6

1 Answers1

0

https://developer.apple.com/documentation/mapkit/mapannotationprotocol

Don’t create types conforming to MapAnnotationProtocol protocol. Instead, use one of the framework-provided types MapAnnotation, MapMarker, and MapPin.

https://developer.apple.com/documentation/mapkit/mapannotation

lorem ipsum
  • 21,175
  • 5
  • 24
  • 48