无法将坐标放入全局变量 [CLgeocoder, swift4]
Posted
技术标签:
【中文标题】无法将坐标放入全局变量 [CLgeocoder, swift4]【英文标题】:Having trouble putting in the coordinates in global variable [CLgeocoder, swift4] 【发布时间】:2020-07-17 06:05:52 【问题描述】:我正在尝试创建一个可以查找日出时间的应用,并且我正在使用这个需要两个位置坐标的 Web API。
这是我获取纬度和经度的解决方案,但是它不会让我将坐标存储在变量中。(坐标必须是浮点数)
为什么不让我将这些数字放入变量中?还是有更好的实现方式?
let lattitude: Float = 0.0000
let longitude: Float = 0.0000
let address = "Tokyo"
CLGeocoder().geocodeAddressString(address) placemarks, error in
if let lat = placemarks?.first?.location?.coordinate.latitude
print("lattitude : \(lat)")
lattitude = lat
if let lng = placemarks?.first?.location?.coordinate.longitude
print("longtitude : \(lng)")
longtitude = lng
【问题讨论】:
【参考方案1】:您已将变量lattitude
和longitude
指定为let
。这些是常量,初始化后不能更改它们的值。将let
更改为var
。
另外一个问题是placemarks?.first?.location?.coordinate.latitude
和placemarks?.first?.location?.coordinate.longitude
返回双精度类型。您不能将双精度分配给浮点数。
您可以尝试将 lat/lng 转换为 Float。
lattitude = Float(lat)
longitude = Float(lng)
或者将 lattitude
和 longitude
变量更改为 Double 类型。
var lattitude: Double = 0.0000
var longitude: Double = 0.0000
【讨论】:
谢谢,这就是问题所在! 没问题!将来阅读和谷歌 xcode 给你的错误,他们会告诉你哪里错了。您也可以单击错误,有时会有一个“修复”按钮来解决您的问题。祝你好运!以上是关于无法将坐标放入全局变量 [CLgeocoder, swift4]的主要内容,如果未能解决你的问题,请参考以下文章
Swift 中的 CLGeocoder - 使用 reverseGeocodeLocation 时无法返回字符串
无法从 CLGeocoder reverseGeocodeLocation 返回字符串