从 iOS 中的气压计访问压力值

Access pressure value from barometer in iOS

我想使用 Swift 访问 iPhone 上气压计的压力值。有人可以告诉我该怎么做吗?我正在使用 CLLocation 访问海拔高度。同样的class可以用来加压吗?

编辑:

我在 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)
            }
        })
    }

气压计读数与位置完全无关。

您需要查看 Core Motion 库,特别是 CMAltitudeCMAltitudeData。有关示例,请参阅 How to use CMAltitudeHandler in Swift?

您需要保留对 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)
    }
}