我正在尝试将坐标存储在数组中。代码运行正常,但是在新实现的坐标的每次迭代之后,数组计数仍然保持不变?
let manager = CLLocationManager()
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations[0]
let span:MKCoordinateSpan = MKCoordinateSpanMake(0.01,0.01) //shows the size of map screen
let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude,location.coordinate.longitude)
let region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)
map.setRegion(region, animated: true)
self.map.showsUserLocation = true
let LAT = Double(location.coordinate.latitude)
let LONG = Double(location.coordinate.longitude)
var locationArray = [Double]()
locationArray.insert(contentsOf: [LAT, LONG], at: 0)
print(locationArray.count)
答案 0 :(得分:0)
这种情况正在发生,因为您在每次迭代中都在创建一个新的locationArray。您需要在更新范围之外声明 locationArray ,以便插入坐标。
var locationArray = [Double]()
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations[0]
let span:MKCoordinateSpan = MKCoordinateSpanMake(0.01,0.01) //shows the size of map screen
let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude,location.coordinate.longitude)
let region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)
map.setRegion(region, animated: true)
self.map.showsUserLocation = true
let LAT = Double(location.coordinate.latitude)
let LONG = Double(location.coordinate.longitude)
locationArray.insert(contentsOf: [LAT, LONG], at: 0)
print(locationArray.count)
}