I am trying to use the barometer sensor in the new iPhones to display vertical speed on the devices. I have ended up with the following code in my "motion" model, which does executes to give more or less appropriate values. 

I am however experiencing problems in terms of updating my View as `startRelativeAltitudeUpdatesToQueue` is executed. The value of `userRelativeAltitude` is updated, but the function never returns anything(presumably because it is executing the `startRelativeAltitudeUpdatesTo Queue` works like a loop.?). I am afraid the whole statement has ended rather above my head.. 

I set out to have functionality more like that of e.g. `startAccelerometerUpdates`. Is there any better way of collecting data from the barometer? 

Also, how do you check if the device has a barometer sensor available? 

```
    - (float) pullRelativeAltitude {

self._altitudeManager = [[CMAltimeter alloc] init];

NSOperationQueue *queue = [[NSOperationQueue alloc] init];

[self._altitudeManager startRelativeAltitudeUpdatesToQueue:queue withHandler:^(CMAltitudeData *altitudeData, NSError *error) {
    dispatch_async(dispatch_get_main_queue(), ^ {

        _userRelativeAltitude = altitudeData.relativeAltitude.floatValue;
        NSLog(@"%f", altitudeData.relativeAltitude.floatValue);

    });
}];

NSLog(@"This is relative altitude: %f", _userRelativeAltitude is );

return _userRelativeAltitude;

```

}

Suggestions would be really appreciated!