访问晴雨表以获得相对高度

迅速

导入 Core Motion 库:

import CoreMotion

接下来,我们需要创建一个 CMAltimeter 对象,但常见的缺陷是在 viewDidLoad() 中创建它。如果以这种方式完成,当我们需要在其上调用方法时,将无法访问高度计。然而,继续在 viewDidLoad() 之前创建你的 CMAltimeter 对象:

let altimeter = CMAltimeter()

现在:

  1. 我们需要通过以下方法检查 relativeAltitude 是否可用:CMAltimeter.isRelativeAltitudeAvailable

  2. 如果返回 true,则可以使用 startRelativeAltitudeUpdatesToQueue 开始监控高度变化

  3. 如果没有错误,你应该能够从 relativeAltitude 和压力属性中检索数据。

下面给出了使用我们的晴雨表开始监控的按钮操作的定义。

@IBAction func start(sender: AnyObject){
if CMAltimeter.isRelativeAltitudeAvailable() {
    // 2
    altimeter.startRelativeAltitudeUpdatesToQueue(NSOperationQueue.mainQueue(), withHandler: { data, error in
        // 3
        if (error == nil) {
            println("Relative Altitude: \(data.relativeAltitude)")
            println("Pressure: \(data.pressure)")
        }
    })
}