有人可以解释为什么我收到错误"无法分配类型[CLLocationCoordinate2D]的不可变值"我会给出两个场景.我希望第二个工作的原因是因为我将处于循环中并且需要每次都将它传递给drawShape函数.
此代码有效:
func drawShape() {
var coordinates = [
CLLocationCoordinate2D(latitude: 40.96156150486786, longitude: -100.24319656647276),
CLLocationCoordinate2D(latitude: 40.96456685906742, longitude: -100.25021235388704),
CLLocationCoordinate2D(latitude: 40.96528813790064, longitude: -100.25022315443493),
CLLocationCoordinate2D(latitude: 40.96570116316434, longitude: -100.24954721762333),
CLLocationCoordinate2D(latitude: 40.96553915028926, longitude: -100.24721925915219),
CLLocationCoordinate2D(latitude: 40.96540144388564, longitude: -100.24319644831121),
CLLocationCoordinate2D(latitude: 40.96156150486786, longitude: -100.24319656647276),
]
var shape = MGLPolygon(coordinates: &coordinates, count: UInt(coordinates.count))
mapView.addAnnotation(shape)
}
Run Code Online (Sandbox Code Playgroud)
此代码不起作用:
override func viewDidLoad() {
super.viewDidLoad()
// does stuff
var coords: [CLLocationCoordinate2D] = [
CLLocationCoordinate2D(latitude: 40.96156150486786, longitude: -100.24319656647276),
CLLocationCoordinate2D(latitude: 40.96456685906742, longitude: -100.25021235388704),
CLLocationCoordinate2D(latitude: 40.96528813790064, longitude: -100.25022315443493),
CLLocationCoordinate2D(latitude: 40.96570116316434, longitude: -100.24954721762333),
CLLocationCoordinate2D(latitude: 40.96553915028926, longitude: …Run Code Online (Sandbox Code Playgroud)