iphone - 发送 'MKOverlayView to parameter of incompatible type ' id<MKOverlay>'

标签 iphone ios xcode mkoverlay

在向我的 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/

相关文章:

iphone - facebook ios sdk 无法工作。 iPhone

ios - 只更新一次位置

objective-c - 在 UIImageView 中居中 UIActivityIndi​​catorView

iphone - iPhone越狱如何工作

ios - UIView animateWithDuration 没有被执行

iphone - 通用应用如何区分iPhone和iPad?

ios - 使用 Cocoapods 一个目标多个平台

objective-c - 包含可访问方法的 iOS 类

iphone - 我仍然可以符号化一个剥离其调试符号的分发版本吗?

iphone - 多项功能同时存在