关于ios:在mapView和tableView之间传递数据

Passing data between mapView and tableView

我有一个带有mapView和tableView的viewController。我正在尝试从mapView获取类似用户当前位置的数据,并将其传递给tableView,以便我可以打印出计算出的距离。

我尝试使用此代码...

1
let distance = currentLocation.distanceFromLocation(endLocation)

但是这是行不通的,因为currentLocation是在locationManager的didUpdateLocation函数中创建的,而endLocation是从我从CloudKit中提取的表视图数据中创建的。由于这两个数据来自不同的函数,因此我无法将它们一起使用。

如何设置userLocation,以便可以在locationManager的功能之外使用它?

我有这个..

1
2
3
4
5
    func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
    let userLocation:CLLocation = locations[0] as! CLLocation
    let ulong = userLocation.coordinate.longitude;
    let ulat = userLocation.coordinate.latitude;
}

但是我不能使用该函数之外的数据。


将当前位置和结束位置保存到其他CLLocation对象,然后实现以下代码。

func CalculateDisatnceBetweenTwoLocations(source:CLLocation,destination:CLLocation)-> Double {

1
2
3
4
var distanceMeters = source.distanceFromLocation(destination)
var distanceKM = distanceMeters / 1000
let roundedTwoDigit = distanceKM.roundedTwoDigit
return roundedTwoDigit

} ??