警告:更新代码时指针类型不兼容



我正在尝试摆脱一些用于在 MapView 中创建覆盖层的弃用代码,现在我面临以下警告:

不兼容的指针类型从结果类型为"MKOverlayView * _Nonnull"的函数返回"MKCircleRenderer *">

我已经阅读了很多关于这个问题的问答,但直到现在我都无法弄清楚。我的代码有什么问题?

// Create overlay
-   (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay{
MKCircleRenderer *circleView = [[MKCircleRenderer alloc] initWithOverlay:overlay];
circleView.fillColor = [[UIColor cyanColor]colorWithAlphaComponent:0.5];
circleView.strokeColor = [[UIColor blueColor]colorWithAlphaComponent:0.8];
circleView.lineWidth = 1;
return circleView;
}

错误说circleViewMKCircleRenderer *的类型,但您的返回类型是MKOverlayView *。这些类型应相同。

-   (MKCircleRenderer *)mapView:(MKMapView *)mapView viewForOverlay:(id<MKOverlay>)overlay{
MKCircleRenderer *circleView = [[MKCircleRenderer alloc] initWithOverlay:overlay];
circleView.fillColor = [[UIColor cyanColor]colorWithAlphaComponent:0.5];
circleView.strokeColor = [[UIColor blueColor]colorWithAlphaComponent:0.8];
circleView.lineWidth = 1;
return circleView;
}

最新更新