我想使用Swift访问iPhone上气压计的压力值。有人可以告诉我该怎么做吗?我正在使用CLLocation
来访问海拔高度。可以将同一类用于压力吗?
编辑:
我在我的viewDidLoad()
方法中添加了以下内容,但它没有打印任何内容......请提供建议。
let altimeter = CMAltimeter()
if CMAltimeter.isRelativeAltitudeAvailable() {
altimeter.startRelativeAltitudeUpdates(to: OperationQueue.current!, withHandler: { data, error in
if !(error != nil) {
print("Relative Altitude: \(data?.relativeAltitude)")
print("Relative Pressure: \(data?.pressure)")
self.pressLabel.text = String(describing: data?.pressure)
}
})
}
答案 0 :(得分:2)
气压计读数与位置无关。
您需要查看Core Motion库,特别是CMAltitude
和CMAltitudeData
。有关示例,请参阅How to use CMAltitudeHandler in Swift?。
答案 1 :(得分:0)
您需要保留对 altimeter
的引用,否则 viewDidLoad()
结束时它会超出范围。
class ViewController: UIViewController {
@IBOutlet weak var pressureLabel: UILabel!
private var altimeter: CMAltimeter!
override func viewDidLoad() {
super.viewDidLoad()
altimeter = CMAltimeter()
guard let data = data else {
print(error?.localizedDescription ?? "unknoen error")
return
}
print("Relative Altitude: \(data.relativeAltitude)")
print("Relative Pressure: \(data.pressure)")
self.pressureLabel.text = String(describing: data.pressure)
}
}