访问晴雨表以获得相对高度
迅速
导入 Core Motion 库:
import CoreMotion
接下来,我们需要创建一个 CMAltimeter
对象,但常见的缺陷是在 viewDidLoad()
中创建它。如果以这种方式完成,当我们需要在其上调用方法时,将无法访问高度计。然而,继续在 viewDidLoad()
之前创建你的 CMAltimeter
对象:
let altimeter = CMAltimeter()
现在:
-
我们需要通过以下方法检查
relativeAltitude
是否可用:CMAltimeter.isRelativeAltitudeAvailable
。 -
如果返回
true
,则可以使用startRelativeAltitudeUpdatesToQueue
开始监控高度变化 -
如果没有错误,你应该能够从
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)")
}
})
}