插入时未存储在数组中的坐标

时间:2017-06-14 01:54:51

标签: arrays swift insert coordinates

我正在尝试将坐标存储在数组中。代码运行正常,但是在新实现的坐标的每次迭代之后,数组计数仍然保持不变?

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)

1 个答案:

答案 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)
}