警告:更新代码时不兼容的指针类型
Warning: incompatible pointer type on updating code
我正在尝试删除一些用于在 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;
}
错误说 circleView
是 MKCircleRenderer *
的类型,但您的 return 类型是 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;
}
我正在尝试删除一些用于在 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;
}
错误说 circleView
是 MKCircleRenderer *
的类型,但您的 return 类型是 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;
}