1

アプリでコアモーションを使用しています。このコードは正常に動作します:

motionManager = [[CMMotionManager alloc] init];
int a = [CMMotionManager availableAttitudeReferenceFrames];

このコードは EXC_BAD_ACCESS でクラッシュし、行の上に次のメモが表示されます。

int a = [CMMotionManager availableAttitudeReferenceFrames];
motionManager = [[CMMotionManager alloc] init];

ステートメントの最初の順序を使用することで問題を回避できますが、availableAttitudeReferenceFrames が次のように定義されているためです。

+ (NSUInteger)availableAttitudeReferenceFrames

クラスをインスタンス化する前にプロパティにアクセスできるはずです。なぜこれが機能しないのですか?

4

1 に答える 1

1

これはかなり奇妙なエラーです。fork()呼び出してから CoreFoundation を使用しようとした場合にのみ、それが表示されるはずです。fork()iOS ではできないため、このエラーが表示されることはありません。

非常に小さなサンプル プロジェクトでこの問題を再現できますか? 可能であれば、Apple にバグ レポートを提出し、サンプル プロジェクトを添付してください。

于 2012-06-29T22:20:34.350 に答える