MKPolylineView initWithPolyLine: 在 iOS 7 中已弃用

MKPolylineView initWithPolyLine: is deprecated in iOS 7

我收到以下错误:initWithPolyline:已弃用:首先在 iOS 7.0

中弃用
MKPolylineView *lineView = [[MKPolylineView alloc] 
       initWithPolyline:overlay];

instead of this的替换方法是什么?

你会想看看 MKPolylineRenderer,特别是 -initWithPolyline(在 iOS 7 及更高版本中可用)。

请参阅 documentation initWithPolyline:。阅读弃用声明,其中指出使用 MKPolylineRenderer 对象代替。

您应该使用 (MKOverlayRenderer *) 类型委托而不是 (MKOverlayView *) 类型委托。 return MKPolylineRenderer 而不是 MKPolylineView.

-(MKOverlayRenderer *)mapView:(MKMapView *)mapView
           rendererForOverlay:(id<MKOverlay>)overlay {

   MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
   renderer.strokeColor = [UIColor redColor];
   renderer.lineWidth = 5.0;

   return renderer;
}