新しいiPhoneの気圧計センサーを使用して、デバイスに垂直速度を表示しようとしています。「モーション」モデルで次のコードになりました。これは、多かれ少なかれ適切な値を与えるために実行されます。
ただし、実行時にビューを更新するという点で問題が発生していますstartRelativeAltitudeUpdatesToQueue
。の値userRelativeAltitude
は更新されますが、関数は何も返しません (おそらくstartRelativeAltitudeUpdatesTo Queue
、ループのように作業を実行しているためです.?)。残念ながら、声明全体が私の頭の上でかなり終わってしまいました..
私は、例えばのような機能を持たせることに着手しましたstartAccelerometerUpdates
。気圧計からデータを収集するより良い方法はありますか?
また、デバイスに気圧センサーが搭載されているかどうかを確認するにはどうすればよいですか?
- (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;
}
提案をいただければ幸いです。