新 Xcode 测试版新问题:MKGeodesicPolyline

New Xcode beta new problems: MKGeodesicPolyline

全新的Xcode版本,除了删除大量添加空函数调用的地方外,还引入了一个有趣的问题,用一段简单的代码绘制大地路径:

func drawPolyline(from startLocation: CLLocation, endLocation:CLLocation) {
    let point1 = startLocation.coordinate
    let point2 = endLocation.coordinate
    var points: [CLLocationCoordinate2D]
    points = [point1, point2]
    var coordinates=points[0]
    let geodesic = MKGeodesicPolyline(coordinates: &coordinates, count:2)
    self.mapView.add(geodesic)
}

编译器抱怨:

Ambiguous use of 'init(coordinates:count:)'

当我试图点击给定的选项时,我总是被引导到那一行。我试图清理项目无济于事。

在这种情况下,MKGeodesicPolyline 将使用 UnsafePointerUnsafeMutablePointer,使用您定义为点的类型 CLLocationCoordinate2D,因此您可能需要:

let geodesic = MKGeodesicPolyline(coordinates: points, count: 2)

Apple Developer : CLLocation

let geodesic = MKGeodesicPolyline(坐标: &coordinates, count:2)

  • 删除坐标前的“&”符号。这解决了问题。