IBAction 显示纬度和经度(swift)
Posted
技术标签:
【中文标题】IBAction 显示纬度和经度(swift)【英文标题】:IBAction to display latitude and longitude (swift) 【发布时间】:2016-11-28 23:41:59 【问题描述】:我有获取用户位置的代码。我希望用户能够按下按钮并在屏幕上查看他们的坐标。我该怎么做,因为我不能直接为按钮功能调用 myLat 或 MyLong,因为它是一个位置管理器功能。为什么这段代码不起作用?
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
// get most recient coordinate
let myCoor = locations[locations.count - 1]
//get lat & long
var myLat = myCoor.coordinate.latitude
let myLong = myCoor.coordinate.longitude
let myCoor2D = CLLocationCoordinate2D(latitude: myLat, longitude: myLong)
//set span
let myLatDelta = 0.05
let myLongDelta = 0.05
let mySpan = MKCoordinateSpan(latitudeDelta: myLatDelta, longitudeDelta: myLongDelta)
let myRegion = MKCoordinateRegion(center: myCoor2D, span: mySpan)
self.LocationManager.stopUpdatingLocation()
@IBAction func coo(sender: AnyObject)
self.coolat.text! = String(myLat)
self.coolong.text! = String(myLong)
【问题讨论】:
您的代码是否正在编译?将 myLat 和 myLong 声明为全局变量。 【参考方案1】:由于您的 locationManager 变量 myLat 和 myLong 是该函数的本地仅,因此只需声明两个全局变量,(a) 由 locationManager 设置,(b) 然后由 IBAction 函数提取。
【讨论】:
我已经在全局范围内设置了它们,但是当它们被调用为 IBAction 时,它们只显示为 0.0。我已将它们全局声明为 var myLat = CLLocationDegrees() 和 var myLong = CLLocationDegrees()。为什么它们显示为 0.0 而不是实际坐标? 按照如何调试的顺序,(1) 设置两个断点,一个在您填充全局变量之后,一个在您的 IBAction 中,(2) 确保您正确填充内容 - 我我猜你是。如果是这样,那么您可能需要进行更好的类型转换——0.05 实际上可以显示为 0.0!看看这个线程如何格式化:[link]***.com/questions/24051314/…【参考方案2】:在函数外部声明 myLat 和 myLong。您可以在 locationManager() 中更新这些值,这些值可以在标签中使用。
【讨论】:
以上是关于IBAction 显示纬度和经度(swift)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 CLLocationManager-Swift 获取当前的经度和纬度