Тип MKAnnotation.title
- String??
, это вложенный Optional
, поэтому вам необходимо дополнительно привязать его дважды.
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
if let optionalTitle = view.annotation?.title, let title = optionalTitle {
print(title)
}
}
Даже если согласно документации MKAnnotation.title , тип заголовка должен быть String?
, поскольку title
объявлено как необязательное свойство протокола:
optional var title: String? { get }
при доступе через тип протокола MKAnnotation
, а неконкретный тип, реализующий протокол, он включается в другой Optional
, что представляет собой тот факт, что свойство title
может даже не быть реализовано конкретным типом, реализующим протокол.Следовательно, при доступе к свойству title
объекта MKAnnotation
, а не объекта с конкретным типом, соответствующим MKAnnotation
, тип title
будет String??
.