加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 将’MKOverlayView发送到不兼容类型’id’的参数

发布时间:2020-12-14 17:37:29 所属栏目:百科 来源:网络整理
导读:在我的地图视图中添加叠加层时,我收到以下警告: Sending 'MKOverlayView *const __strong' to parameter of incompatible type 'idMKOverlay' 代码工作得很好,叠加层应该按照它们的方式绘制,但我很想摆脱警告. 导致它的代码: for(MKOverlayView *overlay i
在我的地图视图中添加叠加层时,我收到以下警告:

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>中没有星号.覆盖部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读