1

このドキュメントに基づいて、 CMAccelerometerDataクラス(Core Motionフレームワークにあります)には、3つの値(double x、double y、double z)を含む構造体のtypedefであるaccelerationと呼ばれるタイプCMAccelerationのプロパティがあります。

私はObjective-Cにかなり慣れていないので(私はC ++しか知りません..)、私の質問はこれです:コードのある時点で、そのプロパティに保持されているdouble y値にアクセスするにはどうすればよいですか?

最初に、次のようなCMAccelerometerDataクラスのインスタンスを作成しますか?

CMAccelerometerData *myAccelerometer;

次に、そのアクセラレーションプロパティにアクセスします。

double axisYvalue = [myAccelerometer acceleration]; 

上記は明らかに間違っていますね。特に加速でYを見つける必要があるので、どうすればよいですか?

double axisYvalue = [myAccelerometer acceleration->y]; // no this is wrong as well..

どうすればいいですか?

そして最後の質問です:)

私が言及したこの特定のクラスとプロパティを考えると、CMAccelerometerクラスをインスタンス化したとしましょう。これで、毎回、コード中に次のようなものを使用します。

return [myAccelerometer acceleration->y]; // let's say that's the correct version :)

いくつかの-(double)メソッドの内部..呼び出しが行われている特定の瞬間にY軸の値を取得しますか?

間隔を定義し、x、y、zの値を頻繁に更新する必要がある、廃止されたU​​IAccelerometerクラスについて読んだときに混乱したため、これを求めています。現在、実行中の値を取得できます。 Y軸では、accelerationプロパティが呼び出された瞬間、そうではありませんか?

ふぅ...このテキストの長さでごめんなさい!:)

4

2 に答える 2

1

C ++から来ているので、ポインタを理解していると仮定しても安全だと思います。その最初の行:

CMAccelerometerData *myAccelerometer;

...インスタンスを作成しているのではなく、インスタンスへのポインタを宣言しています。これは、有効なものを指していません。有効なインスタンスを取得するために、これらのいずれかを実際に自分で作成することは決してありません。代わりに、CMMotionManagerクラスのaccelerometerDataプロパティを使用して、有効なオブジェクトへのポインターを取得します。

// Sometime earlier...
CMMotionManager* manager = [[CMMotionManager alloc] init];
[manager startAccelerometerUpdates];

// Sometime in the present...
// Get a ref to the most recent accelerometer data.
CMAccelerometerData* data = [manager accelerometerData];

// Access it.
double x = [data acceleration].x;
于 2012-07-06T20:38:36.843 に答える
0

読み取り専用プロパティにアクセスできます

myAccelerometer.acceleration

これは3つのdoubleの構造体を返します

myAccelerometer.acceleration.y (gives the y at that specific moment the call is being made)
于 2012-07-06T20:29:41.997 に答える