【问题标题】:CLLocationDegrees to String variable in SwiftCLLocationDegrees 到 Swift 中的字符串变量
【发布时间】:2014-10-01 13:22:17
【问题描述】:

鉴于代码

var latitude = userLocation.coordinate.latitude

返回一个 CLLocationDegrees 对象,如何将值存储到变量中,以便将其作为标签文本应用。

我可以毫无问题地将变量打印到控制台,但显然这对我没有太大帮助!

通过自动完成查看有价值的选项,我看到有描述;

var latitude = userLocation.coordinate.latitude.description

但这会让我返回 null 吗?

谢谢

【问题讨论】:

标签: ios xcode swift geolocation


【解决方案1】:

由于 CLLocationDegrees 只是 Double 的 typedef,因此您可以轻松地将其分配给字符串 var,即:

var latitudeText:String = "\(userLocation.coordinate.latitude)"

【讨论】:

  • 注意:显式类型定义只是可选的,没有它的赋值也可以工作
  • 这是此页面上最简单的解决方案。也适用于:var lat = "\(result.location.coordinate.latitude)"
  • 无法转换“CLLocationDegrees”类型的值?到指定类型'String'
【解决方案2】:
let latitudeText = String(format: "%f", userLocation.coordinate.latitude)

根据您的需要设置格式参数。

【讨论】:

    【解决方案3】:

    这里没有什么对我有用。我得到的最接近的是纬度值的“可选(37.8)”,我认为因为 CLLocationCoordinate2D 是一个可选的类参数。这是我最终得到一个纯字符串的方法:

    let numLat = NSNumber(double: (self.myLocation?.latitude)! as Double)
    let stLat:String = numLat.stringValue
    

    【讨论】:

      【解决方案4】:
      var lat = userLocation.coordinate.latitude
      var latData = String(stringInterpolationSegment: lat)
      

      【讨论】:

      • 一般来说,答案如果包含对代码的用途以及解决问题的原因的解释会更有帮助。
      【解决方案5】:

      您可以使用以下代码将其转换为字符串:

      var oneString = String(userLocation.coordinate.latitude)
      

      【讨论】:

      • 这很好用。只要确保你没有传递一个可选的,用户位置通常是。
      猜你喜欢
      • 1970-01-01
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 2019-09-12
      • 2017-10-11
      • 2018-03-06
      相关资源
      最近更新 更多