我正在尝试构建一个显示用户高度的应用程序,但xCode表示CLLocation没有成员'altitude'。我正在使用的代码是
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { self.Altitude.text = String(locations.altitude)}
答案 0 :(得分:1)
Xcode没有说" CLLocation"没有会员'海拔高度'"但是" [CLLocation]没有会员'海拔'"。
locations
是CLLocation
个对象的数组,并且(因为它是一个数组)没有名为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 }
}