Instance Method


Returns a reusable annotation view located by its identifier.


func dequeueReusableAnnotationView(withIdentifier identifier: String) -> MKAnnotationView?



A string identifying the annotation view to be reused. This string is the same one you specify when initializing the annotation view using the init(annotation:reuseIdentifier:) method.

Return Value

An annotation view with the specified identifier, or nil if no such object exists in the reuse queue.


For performance reasons, you should generally reuse MKAnnotationView objects in your map views. As annotation views move offscreen, the map view moves them to an internally managed reuse queue. As new annotations move onscreen, and your code is prompted to provide a corresponding annotation view, you should always attempt to dequeue an existing view before creating a new one. Dequeueing saves time and memory during performance-critical operations such as scrolling.

See Also

Creating Annotation Views

func register(AnyClass?, forAnnotationViewWithReuseIdentifier: String)

Registers an annotation view class that the map can create automatically.

func dequeueReusableAnnotationView(withIdentifier: String, for: MKAnnotation) -> MKAnnotationView

Returns a reusable annotation view using the specified identifier.

func view(for: MKAnnotation) -> MKAnnotationView?

Returns the annotation view associated with the specified annotation object, if any.

let MKMapViewDefaultAnnotationViewReuseIdentifier: String

The default reuse identifier for your map's annotation views.

let MKMapViewDefaultClusterAnnotationViewReuseIdentifier: String

The default reuse identifier for the annotation view representing a cluster of annotations.