如何在swift中显示用户的海拔高度?

时间:2017-02-01 15:10:36

标签: swift swift3 core-location

我正在尝试构建一个显示用户高度的应用程序,但xCode表示CLLocation没有成员'altitude'。我正在使用的代码是

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { self.Altitude.text = String(locations.altitude)}

2 个答案:

答案 0 :(得分:1)

Xcode没有说" CLLocation"没有会员'海拔高度'"但是" [CLLocation]没有会员'海拔'"。

locationsCLLocation个对象的数组,并且(因为它是一个数组)没有名为altitude的属性。

您需要做的是从数组中提取一个值并使用它来访问海拔高度。

你可能想做这样的事情:

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
  guard let altitude = locations.last?.altitude else { return }
  self.Altitude.text = String(altitude)
}

由于这是一个面向用户的字符串,您应该使用LengthFormatter正确格式化。

小样式注释:变量名称(如self.Altitude应该是小写的,只有类型是PascalCase)。

答案 1 :(得分:0)

You can get Altitude from reverse geocoding in swift for this you can use locationManager and locationManager didUpdateLocations method. 

Step 1: Add below Code in ViewdidLoad method:- 

let locationManager = CLLocationManager()
locationManager.headingFilter = 1
locationManager.delegate = self
locationManager.startUpdatingHeading()


Step 2: Use didUpdateLocations Method:- 

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
 guard let altitude = locations.last?.altitude else { return }
}