无法将坐标放入全局变量 [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
                }
            }

您已将变量 lattitudelongitude 指定为 let。这些是常量,在初始化后不能更改它们的值。将 let 更改为 var

另外一个问题是 placemarks?.first?.location?.coordinate.latitudeplacemarks?.first?.location?.coordinate.longitude returns type double。您不能将双精度数分配给浮点数。

您可以尝试强制转换 lat/lng 以键入 Float。

lattitude = Float(lat)

longitude = Float(lng)

或更改 lattitudelongitude 变量以键入 Double。

var lattitude: Double = 0.0000

var longitude: Double = 0.0000