Отправка 'MKOverlayView параметру несовместимого типа' id<MKOverlay>'
Я получаю следующее предупреждение при добавлении наложений на мой вид карты:
Sending 'MKOverlayView *const __strong' to parameter of incompatible type 'id<MKOverlay>'
Код работает отлично, и оверлеи отображаются так, как должны, но я бы хотел избавиться от предупреждения. Код, который вызывает это:
for(MKOverlayView *overlay in [mapView overlays]) {
[mapView removeOverlay:overlay];
}
(Очевидно, что строка внутри цикла for вызывает эту ошибку) У Google нет ни одного результата для этой ошибки. например, только с MKAnnotationView. Решения там (например):
for(id<MKOverlay> *overlay in [mapView overlays]) {
[mapView removeOverlay:overlay];
}
выдает ошибку.
Есть идеи? Спасибо!
1 ответ
Решение
overlays
свойство возвращает массив объектов модели наложения (объектов, которые соответствуют MKOverlay
протокол), а не наложения представлений.
Так что измените цикл for на:
for(id<MKOverlay> overlay in [mapView overlays]) {
Обратите внимание, что в id<MKOverlay> overlay
часть.