# Core Motion
# Accessing Barometer to get relative altitude
Swift
Import the Core Motion library:
import CoreMotion
Next, 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)")
}
})
}