我想在我的 
 Swift应用程序中绘制折线. 
  
 
SWIFT代码
class MapViewController: UIViewController,MKMapViewDelegate {
    @IBOutlet var theMapView: MKMapView
    override func viewDidLoad() {
        super.viewDidLoad()
        setMapView()
    }
    func setMapView() {
        //theMapView.zoomEnabled = false
        //theMapView.scrollEnabled = false 
        theMapView.rotateEnabled = false  
        // 
        var lat: CLLocationdegrees = 37.586601
        var lng: CLLocationdegrees = 127.009381
        // 
        var latDelta: CLLocationdegrees = 0.008
        var lngDelta: CLLocationdegrees = 0.008
        var theSpan: MKCoordinateSpan = MKCoordinateSpanMake(latDelta,lngDelta)
        var initLocation: CLLocationCoordinate2D = CLLocationCoordinate2DMake(lat,lng)
        var theRegion: MKCoordinateRegion = MKCoordinateRegionMake(initLocation,theSpan)
        self.theMapView.setRegion(theRegion,animated: true)
        var locations = [CLLocation(latitude: 37.582691,longitude: 127.011186),CLLocation(latitude: 37.586112,longitude: 127.011047),CLLocation(latitude: 37.588212,longitude: 127.010438)]
        var coordinates = locations.map({(location: CLLocation) -> CLLocationCoordinate2D in return location.coordinate})
        var polyline = MKpolyline(coordinates: &coordinates,count: locations.count)
        var mypolylineView : MKpolylineView
        /* error */
        mypolylineView.polyline = polyline // #1
        mypolylineView.strokeColor = UIColor.blueColor() // #2
        mypolylineView.linewidth = 5; // #3
        self.theMapView.addOverlay(mypolylineView) // #4
        /* ----- */    
    }
} 
 错误:
// #1 <br> Cannot assign to 'polyline' in 'mypolylineView' <br> // #2 <br> 'strokeColor' is unvailable: APIs deprecated as iOS 7 and earlier are unavailable in Swift <br> // #3 <br> 'linewidth' is unvailable: APIs deprecated as iOS 7 and earlier are unavailable in Swift <br> // #4 <br> Missing argument for parameter 'level' in call <br>
我找不到解决办法.
解决方法
 首先,而不是MKpolylineView,您必须创建一个MKpolylineRenderer. 
  
 
        MKpolylineView自iOS 7以来已被弃用,尽管如果需要,您仍然可以在Objective-C中使用它,Swift不支持它.
其次,您必须在rendererForOverlay委托方法中创建并返回MKpolylineRenderer(不将其传递给addOverlay).
在addOverlay方法中,传递MKpolyline对象(不是MKpolylineView或MKpolylineRenderer).
(参见Adding MKOverlayPathRenderer as overlay to MKMapView gets exception,了解您传递给addOverlay的对象与您在rendererForOverlay中返回的对象之间的区别.
所以在setMapView方法中,删除创建和设置mypolylineView的行,并将addOverlay行更改为:
self.theMapView.addOverlay(polyline)
然后实现rendererForOverlay方法:
func mapView(mapView: MKMapView!,rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! {
    if overlay is MKpolyline {
        var polylineRenderer = MKpolylineRenderer(overlay: overlay)
        polylineRenderer.strokeColor = UIColor.blueColor()
        polylineRenderer.linewidth = 5
        return polylineRenderer
    }
    return nil
} 
 确保地图视图的委托设置,否则代理方法将不会被调用,并且覆盖图不会显示.如果mapView是一个IBOutlet,连接委托插座或将其设置为代码(例如,在调用super后的viewDidLoad中):
self.theMapView.delegate = self