在我的地图视图中添加叠加层时,我收到以下警告:
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]; }
引发错误.
有任何想法吗?
谢谢!
解决方法
覆盖属性返回覆盖模型对象(符合MKOverlay协议的对象)的数组,而不是覆盖视图.
所以将for循环更改为:
for(id<MKOverlay> overlay in [mapView overlays]) {
请注意,id< MKOverlay>中没有星号.覆盖部分.