我有一个带有 mapView 和 tableView 的 viewController。我正在尝试从 mapView 获取用户当前位置等数据,并将其传递给 tableView,这样我就可以打印出计算出的距离。
我尝试使用此代码...
let distance = currentLocation.distanceFromLocation(endLocation)
但这不起作用,因为 currentLocation 是在 locationManager 的 didUpdateLocation 函数中创建的,而 endLocation 来 self 从 CloudKit 中提取的 TableView 数据。我不能同时使用这两个数据,因为它们来自不同的函数.
如何设置 userLocation 以便我可以在 locationManager 的函数之外使用它?
我有这个..
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(来源:CLLocation,目的地:CLLocation)-> 双{
var distanceMeters = source.distanceFromLocation(destination)
var distanceKM = distanceMeters / 1000
let roundedTwoDigit = distanceKM.roundedTwoDigit
return roundedTwoDigit
关于ios - 在 mapView 和 tableView 之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36122648/