Core Motion
Accessing Barometer to get relative altitude
Section titled “Accessing Barometer to get relative altitude”Swift
Import the Core Motion library:
import CoreMotionNext, we need to create a CMAltimeter object, but a common pitfall is to create it in the viewDidLoad(). If done that way, the altimeter won’t be accessible when we need to call a method on it. Nevertheless, go ahead and create your CMAltimeter object just before the viewDidLoad():
let altimeter = CMAltimeter()Now:
We need to check if `relativeAltitude` is even available with the following method: `CMAltimeter.isRelativeAltitudeAvailable`.
Given below is the definition of a button action to begin monitoring with our barometer.
@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)") } })}