この質問は CMCalibratedMagneticField が更新 されない前に尋ねられましたが、実際には答えられませんでした。私はこれに非常に迷っています。
簡単な定式化を使用していますが、field.field.x、y、z は常にゼロです。
if (motionManager.deviceMotionAvailable)
{
[motionManager startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue]
withHandler:
^(CMDeviceMotion *motionData, NSError *error) {
CMCalibratedMagneticField field = motionData.magneticField;
NSLog(@"x: %f y:%f z:%f", field.field.x
, field.field.y
, field.field.z);
}];
}
サンプル出力は
2013-07-14 22:18:27.865 TestApp[6678:907] x: 0.000000 y:0.000000 z:0.000000
2013-07-14 22:18:27.869 TestApp[6678:907] x: 0.000000 y:0.000000 z:0.000000
2013-07-14 22:18:27.879 TestApp[6678:907] x: 0.000000 y:0.000000 z:0.000000
前の回答が示唆しているように、問題は電話ではないと確信しています。私はかなり最新の4S用にコーディングしています。CoreMotion、CoreLocation、および CoreData フレームワークが配置されています。おそらく、実装にインポートする必要があることを知らないヘッダー ファイルがありますか? 現在、私は必要なようです
#import <tgmath.h>
しかし、それは他のもののためです。
どんな助けでも大歓迎です!
ティム・レッドフィールド