在 Swift 中将坐标插入数组时出错
Error when inserting coordinates into array in Swift
Cannot convert value of type '[Dictionary]' to expected
argument type 'UnsafePointer'
这是我在尝试将坐标插入我的数组时遇到的错误。
这是我的代码:
var locations: [CLLocationCoordinate2D] = []
//Updating location + polylines
@objc func update()
{
Annotationtimer = Timer.scheduledTimer(withTimeInterval: 10, repeats: true, block: { (timerr) in
let currentLat = self.locationManager.location?.coordinate.latitude
let currentLong = self.locationManager.location?.coordinate.longitude
let location = [(currentLat!), (currentLong!)]
self.locations.append(location) //HERE IS THE ERROR
print(self.locations)
//Draw polyline on the map
let aPolyLine = MKPolyline(coordinates: locations, count: locations.count)
//Adding polyline to mapview
self.mapView.addOverlay(aPolyLine)
})
}
我正在尝试将当前位置插入到一个数组中,当我按下一个按钮时,我想从头开始通过所有坐标绘制多段线。
我做错了什么?如何正确插入坐标?我已经阅读了关于此的其他线程,但其中 none 实际上是有效的。所以我要创建一个新的。
为什么不喜欢?至少你能告诉我原因。
currentLat
和currentLong
变量为String
,数组类型为CLLocationCoordinate2D
.
你不需要提取currentLat
和currentLong
,最好这样做:self.locations.append(self.locationManager.location?.coordinate)
此外,我的建议 - 使用 guard
来避免应用程序在 self.locationManager.location == nil
.
的情况下崩溃
所以,这是一个例子:
guard let currentLocation = self.locationManager.location else { return } // show error or something else
self.locations.append(currentLocation)
Cannot convert value of type '[Dictionary]' to expected argument type 'UnsafePointer'
这是我在尝试将坐标插入我的数组时遇到的错误。
这是我的代码:
var locations: [CLLocationCoordinate2D] = []
//Updating location + polylines
@objc func update()
{
Annotationtimer = Timer.scheduledTimer(withTimeInterval: 10, repeats: true, block: { (timerr) in
let currentLat = self.locationManager.location?.coordinate.latitude
let currentLong = self.locationManager.location?.coordinate.longitude
let location = [(currentLat!), (currentLong!)]
self.locations.append(location) //HERE IS THE ERROR
print(self.locations)
//Draw polyline on the map
let aPolyLine = MKPolyline(coordinates: locations, count: locations.count)
//Adding polyline to mapview
self.mapView.addOverlay(aPolyLine)
})
}
我正在尝试将当前位置插入到一个数组中,当我按下一个按钮时,我想从头开始通过所有坐标绘制多段线。
我做错了什么?如何正确插入坐标?我已经阅读了关于此的其他线程,但其中 none 实际上是有效的。所以我要创建一个新的。
为什么不喜欢?至少你能告诉我原因。
currentLat
和currentLong
变量为String
,数组类型为CLLocationCoordinate2D
.
你不需要提取currentLat
和currentLong
,最好这样做:self.locations.append(self.locationManager.location?.coordinate)
此外,我的建议 - 使用 guard
来避免应用程序在 self.locationManager.location == nil
.
所以,这是一个例子:
guard let currentLocation = self.locationManager.location else { return } // show error or something else
self.locations.append(currentLocation)