Отправка 'MapAnnotation * __ strong' в параметр несовместимого типа 'id <MKAnnotation>'

Я получаю предупреждение в приведенной ниже строке:

[self.mapView addAnnotation:addressAnnotation];

Предупреждение:

Sending 'MapAnnotation *__strong' to parameter of incompatible type 'id<MKAnnotation>'

Так как я упоминал похожие сообщения, я должен упомянуть, что заголовочный файл этого класса включает <MKAnnotation>, и также доступно декларативное объявление класса MapAnnotation.

Просьба предложить.

Ответ 1

Чтобы избавиться от предупреждения, у вас есть два варианта:

  • Объявить класс self (независимо от того, что этот класс), в его инструкции @interface, чтобы соответствовать протоколу.

  • Подавить предупреждение, изменив это:

    [self.mapView addAnnotation:addressAnnotation];

    :

    [self.mapView addAnnotation:(id)addressAnnotation];

Ответ 2

Решение в моем случае состояло в том, чтобы добавить "s" для addAnnotation.

[self.mapView addAnnotations:addressAnnotation];