'initWithPolygon:'& 'initWithPolyline:'已被弃用:在iOS 7.0中首先弃用:在iOS中是否有针对此警告的解决方案?

时间:2015-01-16 11:51:03

标签: ios mapkit mkpolygonview

我正在使用KMLParser库进行离线地图从服务器下载.kml文件,但我发现了这些警告。

请提供任何解决方案以删除这些警告。

以下是两者的功能:

用于initWithPolygon,

- (MKOverlayPathView *)createOverlayView:(MKShape *)shape
{
    // KMLPolygon corresponds to MKPolygonView

    MKPolygonView *polyView = [[MKPolygonView alloc] initWithPolygon:(MKPolygon *)shape];
    return polyView ;
}

用于initWithPolyline,

- (MKOverlayPathView *)createOverlayView:(MKShape *)shape
{
    // KMLLineString corresponds to MKPolylineView
    MKPolylineView *lineView = [[MKPolylineView alloc] initWithPolyline:(MKPolyline *)shape];
    return lineView ;
}

1 个答案:

答案 0 :(得分:1)

您应该使用(MKOverlayRenderer *)类型代理而不是(MKOverlayView *)类型代理。并返回MKPolylineRenderer而不是MKPolylineView

- (MKOverlayRenderer *)mapView:(MKMapView *)mapView
           rendererForOverlay:(id<MKOverlay>)overlay {
   MKPolylineRenderer *renderer = [[MKPolylineRenderer alloc] initWithOverlay:overlay];
   renderer.strokeColor = [UIColor blueColor];
   renderer.lineWidth = 2.0;            
   return renderer;
}