无法将坐标放入全局变量 [CLgeocoder, swift4]
Having trouble putting in the coordinates in global variable [CLgeocoder, swift4]
我正在尝试创建一个可以找到日出时间的应用程序,我正在使用这个需要位置坐标的网站 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
}
}
您已将变量 lattitude
和 longitude
指定为 let
。这些是常量,在初始化后不能更改它们的值。将 let
更改为 var
。
另外一个问题是 placemarks?.first?.location?.coordinate.latitude
和 placemarks?.first?.location?.coordinate.longitude
returns type double。您不能将双精度数分配给浮点数。
您可以尝试强制转换 lat/lng 以键入 Float。
lattitude = Float(lat)
longitude = Float(lng)
或更改 lattitude
和 longitude
变量以键入 Double。
var lattitude: Double = 0.0000
var longitude: Double = 0.0000
我正在尝试创建一个可以找到日出时间的应用程序,我正在使用这个需要位置坐标的网站 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
}
}
您已将变量 lattitude
和 longitude
指定为 let
。这些是常量,在初始化后不能更改它们的值。将 let
更改为 var
。
另外一个问题是 placemarks?.first?.location?.coordinate.latitude
和 placemarks?.first?.location?.coordinate.longitude
returns type double。您不能将双精度数分配给浮点数。
您可以尝试强制转换 lat/lng 以键入 Float。
lattitude = Float(lat)
longitude = Float(lng)
或更改 lattitude
和 longitude
变量以键入 Double。
var lattitude: Double = 0.0000
var longitude: Double = 0.0000