在向我的 map View 添加叠加层时,我收到以下警告:
Sending 'MKOverlayView *const __strong' to parameter of incompatible type 'id<MKOverlay>'
代码运行良好,叠加层按应有的方式绘制,但我很想去掉警告。 导致它的代码:
for(MKOverlayView *overlay in [mapView overlays]) {
[mapView removeOverlay:overlay];
}
(显然,for 循环内的那一行是引发此错误的原因) 谷歌没有针对该错误的单一结果。例如仅与 MKAnnotationView 类似。 那里的解决方案(例如):
for(id<MKOverlay> *overlay in [mapView overlays]) {
[mapView removeOverlay:overlay];
}
引发错误。
有什么想法吗? 谢谢!
最佳答案
overlays
属性返回覆盖模型对象(符合 MKOverlay
协议(protocol)的对象)而不是覆盖 View 的数组。
因此将 for 循环更改为:
for(id<MKOverlay> overlay in [mapView overlays]) {
请注意 id<MKOverlay> overlay
中没有星号部分。
关于iphone - 发送 'MKOverlayView to parameter of incompatible type ' id<MKOverlay>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11165762/