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

时间:2016-11-28 04:14:46

标签: ios swift sensor

我想使用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)
            }
        })
    }

2 个答案:

答案 0 :(得分:2)

气压计读数与位置无关。

您需要查看Core Motion库,特别是CMAltitudeCMAltitudeData。有关示例,请参阅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)
    }
}